Android 为什么安卓NDK会错过某些API级别?
我刚刚安装了最新的Android Studio和Android NDK。检查NDK安装的Android 为什么安卓NDK会错过某些API级别?,android,android-ndk,Android,Android Ndk,我刚刚安装了最新的Android Studio和Android NDK。检查NDK安装的平台目录时,我可以看到以下平台: android-9 android-12 android-13 android-14 android-15 android-16 android-17 android-18 android-19 android-21 android-22 android-23 android-24 您可以看到NDK中缺少API级别10、11、20和25。那为什么呢 如果我的应用程序应该针对
平台
目录时,我可以看到以下平台:
android-9
android-12
android-13
android-14
android-15
android-16
android-17
android-18
android-19
android-21
android-22
android-23
android-24
您可以看到NDK中缺少API级别10、11、20和25。那为什么呢
如果我的应用程序应该针对API级别11呢?在这种情况下,我应该如何定义ANDROID_平台?我尝试了以下方法,虽然我的NDK中没有android-11
目录,但似乎有效:
externalNativeBuild {
cmake {
arguments '-DANDROID_PLATFORM=android-11',
'-DANDROID_TOOLCHAIN=clang'
}
}
这是针对API级别11的正确方法吗?这让我有点困惑,因为它似乎可以工作,但正如我所说,在我的NDK安装中没有android-11
目录
感谢所有能对此有所了解的人 您可以在中找到问题的答案。底线是,并非所有系统升级都涉及对公共(稳定)本机API的更改,因此在
平台下没有单独的目录。例如,要使您的本机libs与API 11(蜂巢)兼容,您应该使用platforms/android-9
一般来说,Android NDK,特别是Android Studio的CMake实用程序,都知道这一规则,并明确实施这一规则
请注意,最近的NDK(r14)已经放弃了对API 9(姜饼)以下平台的支持
更新NDK r15中存在一个错误:它无法正确处理丢失的android-25文件夹。因此,如果你的Android项目有minSdkVersion 25
,你应该手动选择APP\u PLATFORM=Android-24(或者'-DANDROID\u PLATFORM=Android-24',如果你使用cmake)。通过与一个Android ndk家伙的聊天,我知道API25
不存在,因为“自版本24以来没有新功能”.有一款ndk-14是为api 25而设计的,但它仍然不是稳定的版本,有一些bug。我想为android-9而设计,我需要下载ndk贝娄r14吗?或者是否有任何解决方法可以使用最新的ndk(例如r16)为旧的android api构建?如果您不调用后来引入的api,则可以使用最新的ndk构建android-9二进制文件。