- android-ndk/
- Android ndk 如何修复:“;ABI过滤器';arm64-v8a';在NDK版本x中不再受支持;
我正在从另一个公司建立一个Android项目,它涉及到自制的C++跨平台库。对于这些库的旧版本,在java中创建了一个完整的应用程序项目,该项目带有一个jni接口,用于访问这些库,这些库作为自己的模块存储在gradle.build文件中。由于谷歌对应用程序更新的要求,我们的目标是让应用程序针对arm64-v8a架构进行编译
Android ndk 如何修复:“;ABI过滤器';arm64-v8a';在NDK版本x中不再受支持;
我正在从另一个公司建立一个Android项目,它涉及到自制的C++跨平台库。对于这些库的旧版本,在java中创建了一个完整的应用程序项目,该项目带有一个jni接口,用于访问这些库,这些库作为自己的模块存储在gradle.build文件中。由于谷歌对应用程序更新的要求,我们的目标是让应用程序针对arm64-v8a架构进行编译
Android ndk 如何修复:“;ABI过滤器';arm64-v8a';在NDK版本x中不再受支持;
我正在从另一个公司建立一个Android项目,它涉及到自制的C++跨平台库。对于这些库的旧版本,在java中创建了一个完整的应用程序项目,该项目带有一个jni接口,用于访问这些库,这些库作为自己的模块存储在gradle.build文件中。由于谷歌对应用程序更新的要求,我们的目标是让应用程序针对arm64-v8a架构进行编译,android-ndk,Android Ndk,该项目由以下人员组成:
gradle实验插件0.11.0
gradle插件4.1
针对armeabi-v7a的boost 1.64.0(以arm64-v8a预编译库作为替代)
opencv 2.4.13.2
ndk-r15c
我检查了所有依赖项,以获得一个arm64挂件,它仅用于boost依赖项
我试着改变用于每个项目的ABI列表,使其包含所有架构或单独包含所有架构。我尝试使用其他ndk版本。可能会有帮助但我没有完成的是将实验性gradle插件改为普通插件,但我没能做到这一点
我预计会出现一
该项目由以下人员组成:
- gradle实验插件0.11.0
- gradle插件4.1
- 针对armeabi-v7a的boost 1.64.0(以arm64-v8a预编译库作为替代)
- opencv 2.4.13.2
- ndk-r15c
我检查了所有依赖项,以获得一个arm64挂件,它仅用于boost依赖项
我试着改变用于每个项目的ABI列表,使其包含所有架构或单独包含所有架构。我尝试使用其他ndk版本。可能会有帮助但我没有完成的是将实验性gradle插件改为普通插件,但我没能做到这一点
我预计会出现一些编译或链接错误,但它只告诉我“NDK版本r15.2.4203891中不再支持ABI过滤器‘arm64-v8a’”。如果我尝试其他架构,我会得到相同的错误,但当前选择的架构不是“arm64-v8a”。如果我给出了一个无效的体系结构,它会变为“目标ABI'hello'不受支持”,因此它会识别我认为的体系结构
第一个错误的堆栈跟踪:
配置项目“:app”时出现问题
执行模型规则时引发异常:NdkComponentModelPlugin.Rules#configureNativeLibrary(ModelMap、NdkConfig、NdkHandler、ModelMap、文件、ServiceRegistry)>create(livestage)>withType()
执行模型规则时引发异常:NdkComponentModelPlugin.Rules#configureNativeLibrary(ModelMap、NdkConfig、NdkHandler、ModelMap、文件、ServiceRegistry)>create(lib jni cxx)>withType()
执行模型规则时引发异常:NdkComponentModelPlugin.Rules#configureNativeBinary(BinaryContainer、ModelMap、NdkConfig、NdkHandler)>withType()
NDK版本r15.2.4203891不再支持ABI筛选器“arm64-v8a”
这个实验性插件已经多年不受支持了,所以它不能工作也就不足为奇了。迁移到externalNativeBuild
:您应该升级到NDK r20。