因Google Play 64位要求无法发布App Bundle的问题求助
在Google Play发布App Bundle更新时持续遇到64位兼容性错误

技术配置
- 项目类型:标准Android Kotlin项目
- Android构建工具版本:34.0.0
- minSdkVersion:24
- compileSdkVersion:34
- targetSdkVersion:33
- Android Gradle Plugin版本:8.4.1
- Android Gradle Wrapper版本:gradle-8.6-bin.zip
已尝试的操作与背景
- 严格遵循Google关于App Bundle发布的64位要求规范
- 通过Gradle任务
bundleRelease生成App Bundle - 项目可在64位模拟器正常运行
- 用
file命令验证过App Bundle的lib文件夹内三个原生库都包含arm64-v8a和x86_64版本 - 确认未使用Unity、NDK或RenderScript
- 尝试添加
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'无效 - 查阅过相关技术帖子但未解决问题
- 联系Google Play支持但工单被关闭,未获得具体解决方案
可能的解决方案建议
排查第三方依赖的隐藏原生库
哪怕你没直接用NDK,第三方依赖可能偷偷带了只支持32位的原生库。可以这么查:- 解压App Bundle的base模块(
base.zip),逐个查看lib目录下各架构子文件夹的内容 - 执行
./gradlew app:dependencies导出依赖树,挨个排查第三方库是否存在64位缺失的情况 - 替换或升级那些只提供32位库的依赖
- 解压App Bundle的base模块(
强制Gradle仅打包指定架构
除了abiFilters,可以在Module级别的build.gradle里加以下配置,确保只构建和打包目标架构:android { splits { abi { enable true reset() include 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' universalApk false } } }之后重新执行
bundleRelease生成包用Bundle Tool验证包完整性
用官方工具生成APK并检查架构文件:bundletool build-apks --bundle=app-release.aab --output=app-release.apks解压生成的APKS文件,查看对应架构的APK中lib目录是否包含正确的64位库
检查Google Play签名配置
如果用了Google Play应用签名,确认签名过程没篡改Bundle里的架构文件。可以尝试重新上传本地生成的原始release包(未经过第三方签名的版本)清除构建缓存后重新打包
执行以下命令清掉Gradle缓存,避免旧的32位缓存文件混入:./gradlew clean ./gradlew bundleRelease
内容的提问来源于stack exchange,提问作者GoRoS
相关产品推荐
相关产品推荐

