打包APK到Rokid AR平台报错Gradle Failed解决记录

项目场景:

项目场景:Unity AR项目打包至Rokid Station Pro平台。


问题描述

在特定新电脑上,通过Unity Hub下载完整的Unity和AndroidSDK,直接打包到安卓设备成功,然而安装RokidSDK后,打包失败。
在这里插入图片描述

报错:
在这里插入图片描述

CommandInvokationFailure: Gradle build failed. 
C:\Program Files\Unity\Hub\Editor\2021.3.32f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin\java.exe -classpath "C:\Program Files\Unity\Hub\Editor\2021.3.32f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-6.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleDebug"

找到 what went wrong:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launcher:packageDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store "C:\Users\admin\.android\debug.keystore": Invalid keystore format

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 8s
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
]
stdout[
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details

原因分析:

这是一个经典报错。Gradle build failed意思是在使用Gradle发布时失败了。
经搜索,许多旧文章的解决办法是直接改成用Internal来Build,避免了Gradle的任何bug。

Internal、Gradle和ADT的区别如下:

Internal(Default):Unity内置,仅需Android SDK支持。不能导出工程,适用于仅适用Unity开发的工程。
Gradle(New):使用Gradle进行构建,需要Android SDK与Gradle支持。可以导出Android Studio工程,选这个才能勾选下面的Export Project,适用于Unity与Android交互的项目。
ADT(Legacy):使用ADT进行构建,需要Android SDK与ADT支持。可以导出Eclipse项目,现逐渐被弃用(Unity2017.3中已经没该选项了)。

而Unity2019+版本的安卓基本上都会使用Gradle,当前使用的2021版本已经无法选择Internal。经搜索得知,如果直接Build到安卓有该报错,则多数是由于Gradle的JDK、Andoird SDK、Gradle SDK不全或版本错误导致,可以在Unity Preference的External Tools中检查所使用的SDK,或从官网下载合适版本的SDK。

然而在本案例中,直接打包到安卓平台成功,是加入RokidSDK后才失败,而RokidSDK是官方提供的,应该都没有问题。于是继续检查"What went wrong“部分,可以看到:

com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store 

Build失败是读取Key失败造成的:因被进程锁住,无法从默认的存储位置读取debug.keystore。经搜索得知将lock文件和keystore文件删除即可。


解决方案:

删除报错提到的路径下(C:\Users\用户名.android目录)的debug.keystore和debug.keystore.lock两个文件。
在这里插入图片描述

打包成功。

参考:
Unity Android发布 Gradle Build Failded,使用或覆盖了已过时的 API解决办法
Failed to read key AndroidDebugKey from store解决方法

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值