无源码旧APK重编译后不符合Google Play 64位要求的解决问询
解决无源码APK上传Google Play的64位合规问题
你当前的问题核心是:虽已添加x86_64的64位库,但仍未满足Google Play的64位要求——这主要因为缺少arm64-v8a架构的64位库(绝大多数64位安卓设备为arm架构),同时需确保全流程中64位库被正确打包至最终AAB。以下是可行的无源码解决方案:
步骤1:补充arm64-v8a架构的64位库
Google Play明确要求:若应用支持32位arm架构(armeabi-v7a),必须同时提供对应64位arm架构(arm64-v8a)的native库。仅添加x86_64无法覆盖所有64位设备,这是当前报错的核心原因。
- 找到与原应用功能匹配的arm64-v8a版本
.so库文件 - 将这些库放入反编译目录的
lib/arm64-v8a/路径(目录不存在则新建)
步骤2:确认反编译目录的lib结构
确保最终lib目录结构完整:
lib ├── armeabi ├── armeabi-v7a ├── x86 ├── x86_64 └── arm64-v8a
步骤3:重新编译APK并验证库打包情况
- 用Apktool重新编译:
apktool b "myapp.apk-decompiled" --use-aapt2 -o "myapp-modified-final.apk"
- 解压编译后的APK,检查
lib/目录下是否存在arm64-v8a和x86_64文件夹,且内部包含对应.so文件——这一步是关键,确保Apktool未遗漏打包新添加的库。
步骤4:用官方bundletool生成AAB
第三方APK转AAB工具可能过滤架构,推荐使用Google官方的bundletool,确保所有架构被完整保留:
- 下载bundletool的jar包
- 执行转换命令:
java -jar bundletool-all-<version>.jar build-bundle --modules=myapp-modified-final.apk --output=myapp-final.aab
步骤5:提前验证AAB的架构合规性
上传前用bundletool检查AAB是否包含所需64位库:
java -jar bundletool-all-<version>.jar inspect-bundle --bundle=myapp-final.aab --modules
确认输出结果的nativeConfig部分包含arm64-v8a和x86_64的架构声明,且对应库存在。
额外检查项
- 检查AndroidManifest.xml:若存在
android:extractNativeLibs="false",建议改为true,避免库加载异常 - 确保签名后的APK/AAB使用Google Play认可的上传密钥(你已通过uber-apk-signer完成此步骤,可忽略)
内容的提问来源于stack exchange,提问作者LaUs3r
相关产品推荐
相关产品推荐

