Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么安卓NDK会错过某些API级别?_Android_Android Ndk - Fatal编程技术网

Android 为什么安卓NDK会错过某些API级别?

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 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。那为什么呢

如果我的应用程序应该针对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二进制文件。