我正在建立另一个公司的android项目,该项目涉及自制的C ++跨平台库。对于这些库的较旧版本,使用java开发了一个完整的应用程序项目,该项目带有jni界面来访问这些库,这些库与gradle.build文件一起存储为它们自己的模块。由于Google要求更新应用程序,因此目标是针对arm64-v8a架构编译应用程序。
该项目的设置如下:
我检查了所有依赖项,以获取arm64吊坠,这仅是boost依赖项所需的。
我尝试更改用于每个项目的ABI列表,以包括所有体系结构或单独包含所有体系结构。我尝试使用其他ndk版本。可能有帮助但我没有完成的就是将实验性gradle插件更改为普通插件,但我做不到。
我预期会有一些编译或链接错误,但它只告诉我“ NDK版本r15.2.4203891不再支持ABI筛选器'arm64-v8a'。”如果我尝试其他架构,则会遇到相同的错误,但不是当前所选架构的“ arm64-v8a”。如果我给出的体系结构无效,它将更改为“不支持目标ABI'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)> withType() NDK版本r15.2.4203891不再支持ABI过滤器“ arm64-v8a”。
答案 0 :(得分:0)
这个实验性插件多年来没有得到支持,因此它不起作用也就不足为奇了。迁移至externalNativeBuild
:https://developer.android.com/studio/projects/add-native-code