2010-10-12 124 views
32

我收到警告:如果minSdkVersion低於targetSdkVersion,會發生什麼情況?

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

這將如何影響我的應用程序?

+0

在Android清單的SDK元素是很奇怪的。從名字開始。他們並不意味着他們說什麼......它與SDK和API無關。而且這個信息本身也擊敗了minSdkVersion的目的。 – gcb 2011-02-24 09:44:08

回答

25

您可以放心地忽略該警告。

這是一個奇怪的警告 - 這意味着您正在使用API​​級別8(Android 2.2/Froyo)的工具,但是針對API級別3(Android 1.5/Cupcake)。除非你使用SDK來定位它正好符合的Android版本,否則該警告總是會出現 - 在這種情況下,您將不得不使用當前的SDK來定位Android 2.2。

+34

它_does_意味着你最好做大量的測試。由於您正在針對目標API進行編譯,因此不能保證所引用的所有類和方法都會出現在「minSdkVersion」要求您支持的較早API中。您有責任確保不使用任何這些較新的接口,或者如果它們不存在,則優雅地失敗。 – beekeeper 2010-10-12 03:54:59

+0

如果我不在清單中使用此行,會發生什麼情況? – 2012-01-06 09:48:32

17

我將我的大部分開發工作都設置爲minSdkVersion級別。這幾乎可以保證我沒有使用任何更新的API。然後在發佈應用程序之前切換到我的targetSdkVersion級別。到目前爲止我遇到的唯一問題是較低的級別不支持我需要在生產中使用的一些清單語法。 (例如,級別3不支持targetSdkVersion。)我只是在切換到更高級別之後修復了清單。

+0

我喜歡這種方法。 – DonnaLea 2011-08-22 23:45:17

+0

這是一個有趣的技術。你意識到沒關係,並且對你的用戶有益,可以使用比'minSdkVersion'更新(因此不存在於其中)的API?這樣,擁有比minSdkVersion更先進的操作系統的用戶可以在您的應用中享受更多的現代功能,而運行minSdkVersion的古老用戶仍然可以使用您的應用。您只需要注意向後兼容性,因爲@beekeper在接受的答案中留言。 – Jeffro 2012-12-18 01:52:07

+0

@Jeffro - 是的,我知道這一點,謝謝。我也知道[Adam Powell的博客文章]中描述的延遲加載和相關技術(http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat - 它-too.html)。我仍然喜歡編程到我打算支持的最低級別的API,並且只有在應用程序真正需要時才使用後續功能。 – 2012-12-18 02:11:05

相關問題