2010-10-12 37 views
32

Tôi nhận được cảnh báo:Điều gì xảy ra nếu minSdkVersion thấp hơn targetSdkVersion?

Attribute minSdkVersion (3) is lower than the project target API level (8) 

Điều này ảnh hưởng đến ứng dụng của tôi như thế nào?

+0

các yếu tố SDK trong manifest android thực sự kỳ lạ. Bắt đầu bằng tên. họ không có nghĩa là những gì họ nói ... Nó không có gì để làm với SDK nhưng API. Cũng chính thông điệp này đã đánh bại mục đích của minSdkVersion. – gcb

Trả lời

25

Bạn có thể bỏ qua cảnh báo một cách an toàn.

Đó là cảnh báo lạ - có nghĩa là bạn đang sử dụng các công cụ cho API cấp 8 (Android 2.2/Froyo) nhưng nhắm mục tiêu API cấp 3 (Android 1.5/Cupcake). Cảnh báo đó sẽ luôn xuất hiện trừ khi bạn đang sử dụng SDK để nhắm mục tiêu bản phát hành Android trùng với - trong trường hợp này, bạn sẽ phải nhắm mục tiêu Android 2.2 với SDK hiện tại của mình.

+34

Nó _does_ có nghĩa là bạn nên làm thử nghiệm rộng rãi hơn. Vì bạn đang biên dịch dựa vào API mục tiêu, không có gì đảm bảo rằng tất cả các lớp và phương thức mà bạn tham chiếu sẽ có mặt trong các API trước đó mà "minSdkVersion" yêu cầu bạn hỗ trợ. Bạn có trách nhiệm đảm bảo rằng bạn không sử dụng bất kỳ giao diện mới nào hơn hoặc bạn thất bại một cách duyên dáng nếu chúng không có mặt. – beekeeper

+0

Điều gì sẽ xảy ra nếu tôi không sử dụng dòng này trong tệp kê khai của mình? –

17

Tôi làm hầu hết sự phát triển của mình với dự án được đặt thành cấp độ minSdkVersion. Điều đó đảm bảo rằng tôi không sử dụng bất kỳ API nào gần đây hơn. Sau đó tôi chuyển sang cấp targetSdkVersion trước khi xuất bản ứng dụng. Vấn đề duy nhất tôi đã gặp phải là ở mức thấp hơn không hỗ trợ một số cú pháp biểu thức mà tôi cần sử dụng trong sản xuất. (Cấp 3, chẳng hạn, không hỗ trợ targetSdkVersion.) Tôi chỉ sửa chữa tệp kê khai sau khi chuyển sang cấp cao hơn.

+0

Tôi thích cách tiếp cận này. – DonnaLea

+0

Đây là một kỹ thuật thú vị. Bạn nhận ra rằng nó là ok, và có thể có lợi cho người dùng của bạn, để sử dụng các API mới hơn (và do đó không tồn tại trong) 'minSdkVersion'? Bằng cách đó, người dùng có hệ điều hành hiện đại hơn minSdkVersion có thể tận hưởng nhiều tính năng hiện đại hơn trong ứng dụng của bạn, trong khi người dùng cũ chạy minSdkVersion vẫn có thể sử dụng ứng dụng của bạn. Bạn chỉ cần cẩn thận về khả năng tương thích ngược, như nhận xét @beekeper trong câu trả lời được chấp nhận. – Jeffro

+0

@ Jeffro - Vâng, tôi biết điều đó, cảm ơn. Tôi cũng biết về tải chậm và các kỹ thuật liên quan được mô tả trong [bài đăng trên blog của Adam Powell] (http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat -it-too.html). Tôi vẫn thích lập trình cho API cấp thấp nhất mà tôi dự định hỗ trợ và chỉ sử dụng các tính năng sau này nếu ứng dụng thực sự yêu cầu chúng. –

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