2010-07-25 21 views
12

Tôi chỉ mới bắt đầu sử dụng Eclipse cho các ứng dụng Android. Tôi đã cài đặt Eclipse 3.5.2 và Java 5 AVD là Android 2.1 API 7Ứng dụng không chỉ định cấp API

Chương trình Hello Android ban đầu của tôi chạy tốt nhưng sẽ không chạy lại.

nhận được lỗi sau:

[2010-07-25 09:47:31 - HelloAndroid] WARNING: Application does not specify an API level requirement!
[2010-07-25 09:47:31 - HelloAndroid] Device API version is 7 (Android 2.1-update1)

đã tìm kiếm các diễn đàn nhưng chỉ có thể tìm thấy một refernece để biểu thị tập tin để chắc chắn sau đây đã được thiết lập:

<uses-sdk android:minSdkVersion="3" /> 

file manifest của tôi không chứa dòng đó :

<?xml version="1.0" encoding="utf-8" ?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloandriod" android:versionCode="1" android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".HelloAndroid" android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
    </manifest> 

Tôi đã kiểm tra mgr và được đặt thành 7 Trong Eclipse tôi đã đi đến bất động sản -> Android và đặt nó là 7

nhận được cùng một cảnh báo

+0

Cũng giống như thông báo trước. Eclipse sẽ không tạo ra dòng đó chỉ vì bạn tạo một AVD trong trình quản lý SDK. Việc đặt API mục tiêu thông qua các thuộc tính là động thái phù hợp nhưng cũng không tạo ra dòng cho bạn. Nó chỉ được tạo ra nếu bạn chỉ định AVD khi tạo dự án. Tôi không thể tìm thấy anyway để chỉ định như vậy khi nhập một dự án hiện có, chỉ thông qua dự án mới – celem

Trả lời

35

Vâng, nếu Eclipse là, vì lý do gì, không tạo ra dòng cho bạn, bởi tất cả có nghĩa là bạn có thể thêm nó bản thân bạn.

Thêm dòng:
<uses-sdk android:minSdkVersion="3" />

đến biểu hiện của bạn, ngay trước thẻ manifest kết thúc.

+0

Ngoài ra hãy chắc chắn để đọc chính xác những gì tác động của việc thiết lập các thẻ '' khác nhau là: http://developer.android.com/guide/ publishing/versioning.html # minsdkversion –

10

Bạn cũng nên bao gồm

<uses-sdk android:minSdkVersion="7" /> 

trong file manifest của bạn, nếu nó không phải là đã có. Nó không rõ ràng từ câu hỏi của bạn, nhưng có vẻ như nó không phải là.

Để tham khảo trong tương lai về các cấp độ API, xem this page

+0

Cảm ơn bạn đã nhập. Đối với bất cứ ai đọc điều này, tôi đặt trong hai lệnh src theo cách thủ công và Eclipse không thích nhập thủ công. Nói là không đồng bộ. Nhưng tôi đã có thể cập nhật tệp kê khai trong Eclipse. Nó hiện không có lỗi nhưng chỉ xuất hiện ngày và giờ. Tôi sẽ tìm ra nhưng ít nhất không có lỗi. Cảm ơn – Trent

7

Dường như có một lỗi trong các công cụ SDK Android phiên bản 16 mà đòi hỏi thứ tự đúng của uses-sdk thẻ. Nếu bạn đang sử dụng cả targetSdkVersionminSdkVersion, ra lệnh cho họ như sau:

<uses-sdk android:targetSdkVersion="10" /> <!-- before minSdkVersion --> 
<uses-sdk android:minSdkVersion="7" />  <!-- after targetSdkVersion --> 

Đảo ngược thứ tự sẽ cung cấp cho các thông điệp cảnh báo và bật lên cửa sổ lựa chọn thiết bị. Do đó, tôi khuyên bạn nên viết điều này trong một dòng:

<uses-sdk android:targetSdkVersion="10" android:minSdkVersion="7" /> 
+0

Đã xác nhận. Thực sự kỳ lạ. –

+0

Tôi đã mở [issue # 27320] (http://code.google.com/p/android/issues/detail?id=27320). –

+0

Sự cố đã được giải quyết bằng cảnh báo Lint mới! Tiếng hoan hô! –

2

Tệp kê khai chỉ nên chứa một phần tử duy nhất, đó là lỗi khi sử dụng nhiều lần.

Trong ADT 17, chúng tôi có một cảnh báo lint mới phát hiện và báo cáo vấn đề này:

$ lint --version 
lint: version 17 
$ lint --show MultipleUsesSdk 
MultipleUsesSdk 
--------------- 
Summary: Checks that the <uses-sdk> element appears at most once 

Priority: 6/10 
Severity: Error 
Category: Correctness 

The <uses-sdk> element should appear just once; the tools will *not* merge the 
contents of all the elements so if you split up the atttributes across 
multiple elements, only one of them will take effect. To fix this, just merge 
all the attributes from the various elements into a single <uses-sdk> 
element. 

Thông tin thêm: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

+0

Cảm ơn bạn đã đăng bình luận của mình tại đây. Để tham khảo, sự cố đã đóng là [issue # 27320] (http://code.google.com/p/android/issues/detail?id=27320). –

0

bạn phải xác định mức độ API trong mã của bạn và nó phải được trong một dòng.

sử dụng-sdk android: targetSdkVersion = "19" android: minSdkVersion = "4".

Mục tiêu phải là mới nhất. Nó có thể giúp bạn vì nó làm việc cho tôi. Cảm ơn

Các vấn đề liên quan