我在将我的 .apk 上传到 Google Play 商店时遇到问题。直到上周,我之前能够上传多个不同的构建,但今天我收到错误消息,我应该先对我的文件进行 zipalign。
编辑:通常情况下,我能够通过使用 Android Studios 内置的“生成签名 APK”向导来生成 AppStore 接受的签名和 zipaligned .apk。这在今天不起作用,并导致了以下情况:
我尝试了以下方法:
-
Android studio 生成的app-release.apk 的
手动zipalign。当我尝试此操作时,最后出现错误“VERIFICATION FAILED”。一些谷歌搜索说提供到您具有写访问权限的位置的完整路径很重要,所以我尝试使用特定路径进行操作,但无济于事:
./zipalign -v -f 4 /Users/<username>/git/<projectname>/app/app-release.apk /Users/<username>/git/<projectname>/app/aligned.apk
然后我尝试下载 APK Signer 1.8.5 并使用它来压缩 .apk - 看吧,成功了!它创建了一个对齐的 apk,我可以使用 Android Studio 自己的 zipalign 工具验证它
./zipalign -c -v 4 app-release_ALIGNED.apk
和 APK 签名者本身。但是,现在上传时出现错误:
Failed to run aapt dump badging: W/ResourceType(208730): Bad resource table: header size 0x80a3 or total size 0x80b50000 is larger than data size 0x7bcc4 ERROR: dump failed because the resource table is invalid/corrupt.
这个,我一直没能找到解决办法。
然后我尝试重新创建环境 我之前能够通过恢复到之前的提交/构建以及从 AS 2.2 预览版 3 恢复到 AS2.2 来上传 APK预览 2,但又一次 - 运气不好。
最后,我尝试显式添加
zipAlignEnabled true
我在 Gradle 中的发布配置,但这也没有帮助。
我没有建议,希望有人能提供帮助? :-) 谢谢
最佳答案
终于,我发现了!
我在根目录 build.gradle 中偶然发现了这一行:
classpath 'com.android.tools.build:gradle:2.2.0-alpha3'
Android Studio 2.2 预览版 3 需要此 gradle 构建工具升级,而我只是一如既往地按下“确定,继续”。我很好奇,并试图将其改回上次有效的状态,
classpath 'com.android.tools.build:gradle:2.2.0-alpha2'
并改为在 Android Studio 预览版 2 中构建项目 - 瞧,它成功了!似乎 alpha3 版本存在错误。
我希望这对某人有所帮助。我知道我是一个快乐的星期五露营者,这是肯定的! :-)
self 提醒:无论我的 friend 和同事如何插入, future 生产应用程序都不要依赖金丝雀构建。
关于Android Studio 发布版本不 zipaligning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37746977/