Android Studio 发布版本未压缩对齐
Android Studio release build not zipaligning
我无法将我的 .apk 上传到 Google Play 商店。直到上周,我之前能够上传多个不同的构建,但今天我收到错误消息,我应该先对我的文件进行 zipalign。
编辑:通常情况下,我能够通过使用 Android Studios 内置 "Generate Signed APK" 来生成 AppStore 接受的签名和 zipaligned .apk向导。这在今天不起作用,并导致了以下结果:
我尝试了以下方法:
Android 工作室生成的应用程序 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.
这个,我没能找到解决办法。
然后我尝试重新创建环境我以前能够通过恢复到以前的 commit/build 以及恢复从 AS 2.2 预览版 3 到 AS2.2 预览版 2,但同样 - 没有运气。
最后,我尝试明确添加
zipAlignEnabled true
我在 Gradle 中的发布配置,但这也无济于事。
我没有建议,希望有人能提供帮助? :-) 谢谢
这是我几天前遇到的事情:一次尝试一个:
- 下载 Android Studio 2.2 Preview 2 - 在 IO 会议期间发布后,我 运行 我的代码成功,直到需要将更新版本的 apk 发布到 playstore。那是地狱爆发的时候!
- 我找遍了,但一无所获。因此,有人建议采用以下方法:生成已签名的 apk 后,将其解压缩并删除
META-INF
文件夹,然后删除 re-package 文件夹,然后通过终端手动对其进行签名。将文件打包成 .apk
格式很简单:只需使用 zip 扩展名,然后重命名扩展名即可。
- 虽然这似乎对我有用,但事实并非如此。不过它对其他人有用。
- 终于明白是最新的AndroidStudio Preview 2的一个bug引起的。
- 谢天谢地,我仍然有稳定的 2.1 版本,我打开它,加载了我的项目和 Boom!它像我预期的那样工作。
所以,请尝试最后一个选项,先清理您的项目,然后重试。我知道这有多令人沮丧。祝你好运!
终于,我发现了!
我在根 build.gradle 中偶然发现了这一行:
classpath 'com.android.tools.build:gradle:2.2.0-alpha3'
Android Studio 2.2 预览版 3 需要此 gradle 构建工具升级,而我一如既往地按下了 "sure, go ahead"。我很好奇,并试图将其改回上次有效的状态,
classpath 'com.android.tools.build:gradle:2.2.0-alpha2'
并改为在 Android Studio 预览版 2 中构建项目 - 瞧,它成功了!似乎 alpha3 版本存在错误。
我希望这对某人有所帮助。我知道我是一个快乐的星期五露营者,这是肯定的! :-)
自言自语:无论我的朋友和同事如何推动,未来生产应用程序都不要依赖金丝雀构建。
我无法将我的 .apk 上传到 Google Play 商店。直到上周,我之前能够上传多个不同的构建,但今天我收到错误消息,我应该先对我的文件进行 zipalign。
编辑:通常情况下,我能够通过使用 Android Studios 内置 "Generate Signed APK" 来生成 AppStore 接受的签名和 zipaligned .apk向导。这在今天不起作用,并导致了以下结果:
我尝试了以下方法:
Android 工作室生成的应用程序 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.
这个,我没能找到解决办法。
然后我尝试重新创建环境我以前能够通过恢复到以前的 commit/build 以及恢复从 AS 2.2 预览版 3 到 AS2.2 预览版 2,但同样 - 没有运气。
最后,我尝试明确添加
zipAlignEnabled true
我在 Gradle 中的发布配置,但这也无济于事。
我没有建议,希望有人能提供帮助? :-) 谢谢
这是我几天前遇到的事情:一次尝试一个:
- 下载 Android Studio 2.2 Preview 2 - 在 IO 会议期间发布后,我 运行 我的代码成功,直到需要将更新版本的 apk 发布到 playstore。那是地狱爆发的时候!
- 我找遍了,但一无所获。因此,有人建议采用以下方法:生成已签名的 apk 后,将其解压缩并删除
META-INF
文件夹,然后删除 re-package 文件夹,然后通过终端手动对其进行签名。将文件打包成.apk
格式很简单:只需使用 zip 扩展名,然后重命名扩展名即可。 - 虽然这似乎对我有用,但事实并非如此。不过它对其他人有用。
- 终于明白是最新的AndroidStudio Preview 2的一个bug引起的。
- 谢天谢地,我仍然有稳定的 2.1 版本,我打开它,加载了我的项目和 Boom!它像我预期的那样工作。
所以,请尝试最后一个选项,先清理您的项目,然后重试。我知道这有多令人沮丧。祝你好运!
终于,我发现了!
我在根 build.gradle 中偶然发现了这一行:
classpath 'com.android.tools.build:gradle:2.2.0-alpha3'
Android Studio 2.2 预览版 3 需要此 gradle 构建工具升级,而我一如既往地按下了 "sure, go ahead"。我很好奇,并试图将其改回上次有效的状态,
classpath 'com.android.tools.build:gradle:2.2.0-alpha2'
并改为在 Android Studio 预览版 2 中构建项目 - 瞧,它成功了!似乎 alpha3 版本存在错误。
我希望这对某人有所帮助。我知道我是一个快乐的星期五露营者,这是肯定的! :-)
自言自语:无论我的朋友和同事如何推动,未来生产应用程序都不要依赖金丝雀构建。