Android AAB打包报错(持续更新中~)

1,364 阅读2分钟

前言

今天在aab打包的时候遇到一些神奇的问题,话不多说,看问题

jarsigner.exefailed with exit code 1

开发环境

  • Android Studio:4.2.0
  • Gradle插件版本:3.2.1
  • Gradle所需版本:4.8.1

直接跑debug包没问题,打APK包也正常,问题来了打aab包就报错:

Cause: jarsigner.exefailed with exit code 1 :
����: �Ҳ������޷��������� sun.security.tools.jarsigner.Main

Build output乱码问题后面讲到,咱一个个解决,先看打包问题

解决方案

  • 升级Gradle插件版本:4.2.0
  • 升级Gradle所需版本:6.7.1

aab打包正常,问题解决。

查阅官方文档仅要求:Android Studio 3.2 或更高版本。还没搞懂,有知道的大佬辛苦帮忙解答一下。

Execution failed for task ':app:transformClassesWithDexBuilderForRelease'.

这个问题很直观,可能是gradle问题

开发环境

  • Android Studio:4.2.0
  • Gradle插件版本:3.2.1
  • Gradle所需版本:4.8.1

这次跑debug包都不行

解决方案

  • 1、对照Gradle插件版本和Gradle所需版本是否一致
  • 2、升级Gradle插件版本和Gradle所需版本

因为这个问题解决所以借鉴解决方案2,解决了Cause: jarsigner.exefailed with exit code 1 的问题

可参考Gradle插件对应的Gradle所需版本

Cause: failed to decrypt safe contents entry: java.io.IOException: getSecretKey failed: Password is not ASCII

jks密码错误,打包时重新输入一下即可。

本文用于记录aab打包错误。持续更新中~

Build output乱码

运行环境:Android Studio版本4.2.0

方法一

  • 1.点击help,选择Edit Custom VM Options,点击Create

  • 2.打开后输入 -Dfile.encoding=UTF-8(前面不要有空格,否则AS打不开),重启Android Studio(FIle选择 Invalidate cache/restart)即可。

方法二

在方案一 -Dfile.encoding=UTF-8的基础上增加 -Dconsole.encoding=UTF-8

方法三

找到Android Studio安装目录的bin文件夹下的studio64.exe.vmoptions添加 -Dfile.encoding=UTF-8(前面不要有空格,否则AS打不开)

方法四

在app/build.gradle中的android节点下添加如下代码:

android {
    android {
        //解决build output输出乱码的问题
        compileOptions.encoding = "UTF-8"
    }
}

方法五

上面的方案解决了大部分人的问题,但是我的就是不行,任性,有厉害的大佬麻烦指点一下。谢啦。