Unity打包Android遇Invalid keystore format及Gradle构建错误求助
错误详情
- Error1: 任务
:launcher:packageRelease执行失败执行com.android.build.gradle.internal.tasks.Workers$ActionFacade时发生失败
com.android.ide.common.signing.KeytoolException: 无法从存储"C:\Users\revik.android\debug.keystore"中读取密钥AndroidDebugKey:Invalid keystore format - Error2: CommandInvokationFailure: Gradle构建失败
执行命令:
C:\Program Files\Unity\Hub\Editor\2021.3.18f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin\java.exe-classpath "C:\Program Files\Unity\Hub\Editor\2021.3.18f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-6.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"
解决步骤
删除损坏的debug密钥库
找到路径C:\Users\revik\.android\debug.keystore,直接删除该文件。下次构建Android项目时,Unity会自动生成新的合法debug密钥库。手动生成debug密钥库(自动生成无效时用)
打开Unity自带的OpenJDK所在目录:C:\Program Files\Unity\Hub\Editor\2021.3.18f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin,在该目录打开命令提示符,执行以下命令:keytool -genkey -v -keystore debug.keystore -storepass android -alias AndroidDebugKey -keypass android -keyalg RSA -keysize 2048 -validity 10000生成完成后,把
debug.keystore文件移动到C:\Users\revik\.android\目录下。检查Unity构建设置
打开Unity编辑器,进入Edit > Project Settings > Player > Android > Publishing Settings:- 若用debug构建,不要勾选
Use Existing Keystore; - 若用自定义密钥库,确认密钥库路径、密码、别名全部正确,且密钥库为JKS格式(Unity 2021版本适配JKS)。
- 若用debug构建,不要勾选
清理缓存后重构建
删除项目下的Library、Temp文件夹,以及C:\Users\revik\.gradle\caches里的缓存文件,之后重新构建项目。
内容的提问来源于stack exchange,提问作者REVIRA9

