我正在测试脚本以从命令行构建共享对象。根据{{3}},最新下载的内容是 android-ndk-r10e
(我认为这是旧版下载)。
但是,当我检查 android-23
时,我发现没有可用的内容:
$ echo "$ANDROID_NDK_ROOT"
/opt/android-ndk-r10e
$ ls "$ANDROID_NDK_ROOT/platforms"
android-12 android-15 android-18 android-3 android-8
android-13 android-16 android-19 android-4 android-9
android-14 android-17 android-21 android-5
我认为NDK for Android 6.0是 android-23
,不可用吗?或许也许其他我不太了解的事情。
(我关注主要的版本颠簸,以及它所包含的重大变化,例如NDK Downloads并破坏了东西)。
答案 0 :(得分:1)
6.0中没有新的原生API,因此无需在NDK中提供该目标 - 它与5.1和5.0的目标相同。
使用NDK进行构建时,目标平台将被选为在您选择目标平台之前实际存在的最新平台(最早的目标平台,对于稍后介绍的ABI)。
请记住,“目标API”在Java和本机代码之间的表现完全不同。如果您使用一个目标API级别构建本机代码,则代码可能根本不会在旧版本上运行 - 请参阅例如https://stackoverflow.com/a/27338365/3115956和https://stackoverflow.com/a/27093163/3115956。
因此,除非您想尝试在某些平台上手动加载和使用新功能(如果可用),您应该将目标版本(APP_PLATFORM
中的jni/Application.mk
)设置为您希望的最低版本要运行的代码,即对应于minSdkVersion
。
答案 1 :(得分:0)
根据我的理解,NDK处于开发的单独“流”中,其发布次数比Android平台本身更少或更频繁。您应该可以毫无问题地为 android-23 设备开发NDK应用程序,Google可能还没有时间更新 android-23 的NDK版本。
看看修订版, r10e 刚刚发布,但事实是它也是今天的最新版本。