2012-12-09 17 views
5

Tôi đã làm theo hướng dẫn cơ bản trên developers.android.com và đến bằng cách tạo hoạt động có tên DisplayMessageActivity. Nó là một hoạt động trống với tất cả các đặc tả được đưa ra như được hiển thị trong hướng dẫn. FYI, tôi đang sử dụng Min SDK = API 8, Target SDK = API 16, Biên soạn với = API 10Lỗi biên dịch với API 10

Điều tiếp theo là có hai lỗi:

  1. "Phương pháp getActionBar() được xác định cho các loại DisplayMessageActivity
  2. "nhà không thể được giải quyết hay không là một lĩnh vực"

tôi đã cố gắng thay đổi API để 14 mà kêu gọi một vấn đề khác, nó muốn API tối thiểu là 11.

Điều đó giải quyết được những vấn đề này, nhưng vấn đề chính là rất nhiều thiết bị vẫn sử dụng Gingerbread hoặc có thể là FroYo. Tôi không thể viết cho họ? Tôi có phải đi cao hơn không? Làm thế nào để viết cho họ?

+0

Có, mã chính xác giống với hướng dẫn này http://developer.android.com/training/basics/firstapp/starting-activity.html –

Trả lời

5

Trước tiên, bạn sẽ muốn đảm bảo rằng bạn đang biên dịch dựa trên phiên bản Android mới nhất. Bạn nên cập nhật phiên bản sdk của mình vì bạn đang biên soạn API 10 nhưng nhắm mục tiêu 16. Nội dung có thể bị hỏng nếu bạn làm điều đó, vì vậy tốt nhất là luôn cập nhật để an toàn. Điều này có nghĩa là nhấp chuột phải vào dự án của bạn trong Eclipse, nhấp vào Thuộc tính rồi nhấp vào Android. Kiểm tra API phiên bản cao nhất ở đó. Nếu bạn có phiên bản mới nhất, đó là Android 4.2. Sau đó, trong tệp AndroidManifest.xml, hãy đặt android:targetSdkVersion vào những gì bạn đã chọn (trường hợp của tôi là api 17).

enter image description here

này phải đảm bảo rằng ứng dụng của bạn có thể chạy trên về cơ bản Honeycomb để Jellybean. Tuy nhiên, ứng dụng này muốn chạy trên ít nhất froyo. Phần tiếp theo này sẽ cho phép ứng dụng của bạn chạy trên tất cả các thiết bị.

Thực hiện một phương pháp như thế này:

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
    private void setupActionBar() { 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
      // Show the Up button in the action bar. 
      getActionBar().setDisplayHomeAsUpEnabled(true); 
     } 
    } 

Nó sẽ kiểm tra xem đó API nó đang chạy trên và chỉ khi nó là tổ ong trở lên, cho phép thanh hành động. Gọi nó từ onCreate() Bạn sẽ cần phải lấy ra getActionBarCall đó là trong onCreate() vì nó không cần thiết nữa ở đó.

Đối với nhà không được kích hoạt, nó có thể chỉ là một mục tiêu dự án sai hoặc bạn quên viết android.R.id.home và thay vào đó đã viết R.id.home.

Cuối cùng với tất cả những thay đổi này, bạn nên làm sạch dự án của mình (Dự án -> Làm sạch).