换了一台电脑,使用AS打包生成APK时抛出这两个问题,按顺序抛出的:
1、Android Studio Gradle sync failed: Illegal char <?> at index...
字面解析一看就是非法的字符集抛出的异常,在Gradle脚本编译时,确实有用动态生成中文APK包的命名,但是在前一台电脑里面打包是没有问题,证明不是字符集的问题,但是为了解决这个问题,于是把Gradle动态编译时的中文字符集换成英文,于是就抛出了第二个问题....
2、Get Key failed: getSecretKey failed: Password is not ASCII...
获取秘钥key时,密码不是ASCII码,AS版本4.0以后,APK生成.jks秘钥文件,是需要PCKS二次加密生成,以保证.jks文件的安全性,在前一台电脑上已经生成过了,所以可以排除生成秘钥的问题。
从两个问题分析出,都是字符集编码出了问题,于是去看AS的编码问题,右下角也是正常的编码,setting里面也是正常的UTF-8编码,


AS的编码也没有问题,那么再看看系统的字符集,通过win+r后cmd,输入java(前提是配置了java系统变量,不然命令不生效),确实看到了cmd里面展示出来,有关中文都变成了乱码,确认了系统字符集已经被更改,需要把系统字符集改成中国简体中文后重启。

这样就解决了上述两个问题,再次打包就通过了~
最终得出结果:不论是项目git/svn导出,拷贝,需要系统编码、AS编码跟之前的项目编码一样,否则在工作区域显示会乱码,或者在打包编译时,会抛出非法的字符集异常。

在新电脑上使用Android Studio打包APK时遇到两个问题:1) Gradle同步失败,提示非法字符;2) 获取密钥失败,提示密码非ASCII码。分析后发现,问题根源在于系统字符集被更改为非中文,导致打包过程中的编码问题。解决方法是将系统字符集改回中文,并确保AS和项目的编码设置也与旧电脑一致。经此调整,打包过程顺利完成。
1032

被折叠的 条评论
为什么被折叠?



