使用ndk-build編譯項目的時候會看到一個警告“Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8”,雖然”不怎么”影響結果,看着礙眼
解決方法
在項目里的jni/Application.mk
文件里加入一行
APP_PLATFORM := android-8
即可.
為什么會有這個警告?
在android上項目里,可以在AndroidManifest.xml
中寫入
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>
來表示程序可以運行的最低android設備是android 2.2(API Version 8)
, 經過詳細測試的目標android版本是android 4.2.2(API Version 17)
.這里定義的是Java API Version
再來看一下ndk(版本r8e)目錄下的platforms文件夾,可以看到
android-3
android-4
android-5
android-8
android-9
android-14
一共有6個文件夾,分別表示相應的Native API Version
看到這里就明白了,那個警告的意思就是說,使用的Native API Version比最低版本Java API要高,可能導致的問題就是:
在Native Code里使用了一個platforms/android-14
下的API函數,然后程序在 android-8
的設備上運行,當然這個函數在android-8
設備上是不存在的,就會崩潰了
為什么Native API的版本數量會少於Java API?
因為android在版本升級的時候,有時候只升級了Java層的API,而Native層的卻沒有變化