我正在从另一家公司建立一个android项目,其中包括selfmade的C++跨平台库。对于这些库的旧版本,在java中创建了一个完整的app项目,并带有一个jni接口来访问这些库,这些库存储在自己的模块中,带有gradle.build文件。由于谷歌对应用程序更新的要求,我们的目标是让应用程序编译为arm64-v8a架构。
该项目的设立有:
ndk R15CH 210f 211
我检查了所有的依赖项,以获得一个arm64挂件,这只是boost依赖项所需要的。
我尝试更改ABI列表,该列表用于每个项目,使其包含所有的体系结构或全部。我试过使用其他ndk版本。可能有帮助但我没有完成的是将实验性的gradle插件更改为普通的插件,但我没有做到这一点。
我希望有一些编译或链接错误,但它只告诉我“NDK版本r15.2.4203891不再支持ABI过滤器'arm64-v8a‘”。如果我尝试其他体系结构,我会得到相同的错误,但是当前选择的体系结构不是'arm64-v8a‘。如果我给出一个无效的体系结构,它会更改为"Target 'hello‘是不支持的“,因此它会识别我认为的体系结构。
第一个错误的堆栈跟踪:配置项目':app‘时出现了问题。
在执行模型规则时抛出的异常: NdkComponentModelPlugin.Rules#configureNativeLibrary(ModelMap,NdkConfig、NdkHandler、ModelMap、File、ServiceRegistry> create(livestage) > withType()在执行模型规则时抛出的异常: NdkComponentModelPlugin.Rules#configureNativeLibrary(ModelMap,NdkConfig、NdkHandler、ModelMap、File、ServiceRegistry) > create(lib-jni-cxx) > withType()在执行模型规则时抛出的异常: NdkComponentModelPlugin.Rules#configureNativeBinary(BinaryContainer,ModelMap、NdkConfig、NdkHandler) >NdkConfig() ABI筛选器'arm64-v8a‘在NDKVersionr15.2.4203891中不再受支持。
发布于 2019-12-06 19:17:39
这个实验性的插件已经多年没有支持了,所以它不能工作也就不足为奇了。迁移到externalNativeBuild:https://developer.android.com/studio/projects/add-native-code
https://stackoverflow.com/questions/58821814
复制相似问题