Android Studio生成release签名AAB/APK时lib/arm报未知原生架构错误
报错根因
执行packageReleaseBundle任务时碰到的Unrecognized native architecture for directory 'lib/arm'报错,本质是Android Gradle Plugin的原生库打包校验规则拦截:Android 官方只认可armeabi-v7a、arm64-v8a、x86、x86_64这四类命名标准的原生架构目录,没有定义arm对应的合法架构映射,只要打包流程扫描到路径下存在lib/arm目录,就会直接中断构建流程。
实操解决步骤
- 全局定位非法目录:把Android Studio的项目视图切换为Project模式,全项目搜索所有路径含
lib/arm的文件,这类目录一般出现在app/src/main/jniLibs/arm,或是第三方SDK打包时携带的冗余目录 - 本地目录名修正:如果该目录是你自己维护的jniLibs路径,根据目录内so库的实际架构,把
arm目录重命名为标准ABI名称:存放32位ARM库就改名为armeabi-v7a,存放64位ARM库就改名为arm64-v8a - 第三方SDK无法修改时的配置兜底:如果非法目录是第三方依赖内置的、无法直接修改源码,可在app模块的
build.gradle的android闭包中添加打包排除规则,跳过该非法目录的校验:android { packagingOptions { jniLibs { excludes += ['lib/arm/**'] } } } - 配置修改完成后同步Gradle,重新执行签名bundle的release构建流程即可正常出包。
内容的提问来源于stack exchange,提问作者Murtaza Vadnagarwala
相关产品推荐
相关产品推荐

