React Native 0.70.6上传AAB至Google Play遇ABI不兼容问题求助
解决Google Play Console ABI不支持上传问题(React Native 0.70.6)
针对你上传.aab时遇到的ABI不支持报错,以下是针对性的排查和解决步骤:
检查全项目gradle配置的ABI过滤
不要只关注app模块的build.gradle,确保所有相关配置都统一指定目标ABI:- 在
app/build.gradle的defaultConfig块中明确配置:android { defaultConfig { ndk { abiFilters "armeabi-v7a", "x86", "x86_64", "arm64-v8a" } } } - 同步
buildTypes > release块的配置,避免release构建时覆盖规则;同时检查项目根目录build.gradle,添加全局过滤确保子模块也遵循规则:subprojects { afterEvaluate { project -> if (project.hasProperty("android")) { android { ndk { abiFilters "armeabi-v7a", "x86", "x86_64", "arm64-v8a" } } } } }
- 在
彻底清理缓存后重新构建
残留的构建缓存可能导致配置不生效,执行以下命令清理后重新生成AAB:./gradlew clean rm -rf node_modules && npm install rm -rf android/build android/app/build ./gradlew bundleRelease排查第三方依赖的ABI冗余
部分第三方原生模块/SDK可能携带废弃ABI(如armeabi),导致最终产物不符合要求:- 解压生成的AAB,查看
base/lib目录下的文件夹,确认是否存在非指定ABI的目录;也可以用命令快速检查:unzip -l app-release.aab | grep .so - 如果发现冗余ABI,在
app/build.gradle中添加打包规则强制排除:android { packagingOptions { exclude 'lib/armeabi/**' } } - 尝试升级问题依赖到最新版本,多数主流库已移除废弃ABI支持。
- 解压生成的AAB,查看
验证最终产物的ABI合规性
重新构建后,再次检查AAB内的base/lib目录,确保只有armeabi-v7a、x86、x86_64、arm64-v8a四个文件夹,无其他冗余ABI目录。
内容的提问来源于stack exchange,提问作者Shivam
相关产品推荐
相关产品推荐

