多年来我一直使用Android,但是最近,当我使用ndk-build(ndk版本15)构建CPP时,我看到了下面的信息。
Android :Androd-9不受支持。使用最低支持版本Androd-14。Android :警告: APP_PLATFORM android-14高于android:minSdkVersion 9
为什么NDK不再支持Android水平(3-13)低于android-14?
我试图找出为什么在NDK指南,apis.html,虽然我仍然不知道。看起来NDK仍然支持高于或等于3级。
我还猜到,我在c++中需要的一个标志或特性可能会导致这种情况。然而,到目前为止,我甚至没有找到任何线索。
LOCAL_CPP_FEATURES := rtti exceptions
APP_CPPFLAGS += -std=c++11
APP_STL := gnustl_static
发布于 2017-08-15 07:45:46
如果您的应用程序应该运行在android-9上,请不要更新NDK版本15。
根据NDK修订历史(history.html),
Android2.3 (android-9)不再受支持。NDK中的最小API级别目标现在是Android4.0 (android-9)。如果您的APP_PLATFORM设置低于android-14,则使用android-14。
发布于 2017-08-15 09:22:50
你的问题“为什么”应该向NDK团队提出。你可以在公共邮件列表询问他们,也可以在GitHub上投诉。
无论如何,目前他们的判决是停止支持旧设备。预期NDK的下一个版本将进一步减少平台需求。
有趣的问题是你应该做些什么。如果您对Andro-9的关心远远超过Androd-26,那么您可以继续使用旧版本的NDK。它不会停止工作的。它没有到期日。
通常,Android会保持向后兼容性:如果一个应用程序是为platform-X构建的,它将在平台上运行(可能是在兼容性模式下)-(X+n)。
另一方面,NDK的新版本有重要的bug修复,包括安全修复。新设备(例如,platform 'O')在运行用旧NDK编译的二进制文件时可能会遇到问题。当然,旧的NDK不会让您访问仅在高级平台上可用的新功能。
因此,可能值得上传两种不同的APKs -一种使用目标SDK=9,另一种使用最小SDK=21 (您的数字可能有所不同)。Play Store允许为不同的平台(和ABI)维护单独的APK。您只需要小心版本代码策略,然后您的用户就会及时收到他们的更新--那些被Eclair困住的人,以及那些升级到Nougat的用户。
https://stackoverflow.com/questions/45685227
复制