我正在测试一个脚本,以从命令行构建一个共享对象。根据android-ndk-r10e,最新的下载是NDK下载 (我以为这是一个旧的下载)。
然而,当我检查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-5NDK是否适用于Android6.0,我认为android-23,是不可用的吗?或者其他我不太明白的事情。
(我关心的是主要的版本凸起,以及它所包含的破坏性变化,比如当兰德功能改变和坏东西的时候)。
发布于 2015-12-07 09:09:55
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 in jni/Application.mk)设置为您希望代码在其上运行的最低版本,即对应于minSdkVersion。
发布于 2015-12-07 02:24:57
据我所知,NDK处于一个单独的开发“流”中,发布的次数比Android平台本身少或更频繁。你应该能够为android-23设备开发一个NDK应用程序,没有任何问题,谷歌可能还没有时间更新android-23的NDK版本。
看看这些修订,r10e已经发布了一段时间,但事实是,它也是最新的版本。
https://stackoverflow.com/questions/34124668
复制相似问题