Unity Android发布 Gradle Build Failded,使用或覆盖了已过时的 API解决办法
Android Build Error
Step1:提取报错信息:
CommandInvokationFailure: Gradle build failed.
C:/Program Files/Unity/2019.4.36f1c1/Editor/Data/PlaybackEngines/AndroidPlayerOpenJDKinjava.exe -classpath "C:Program FilesUnity2019.4.36f1c1EditorDataPlaybackEnginesAndroidPlayerToolsgradlelibgradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"
stderr[
注: E:\_WorkSpace 2_ProjectSpace 2_Unity_ProjectRyunm_CommonTestTempgradleOutunityLibrarysrcmainjavacomunity3dplayerUnityPlayerActivity.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
* What went wrong:
Execution failed for task ':launcher:checkReleaseDuplicateClasses'.
> 1 exception was raised by workers:
java.lang.RuntimeException: Duplicate class com.twobigears.audio360exo.BuildConfig found in modules audio360-exo25.jar (audio360-exo25.jar) and audio360-exo28.jar (audio360-exo28.jar)
Duplicate class com.twobigears.audio360exo2.OpusDecoder found in modules audio360-exo25.jar (audio360-exo25.jar) and audio360-exo28.jar (audio360-exo28.jar)
Duplicate class com.twobigears.audio360exo2.OpusDecoderException found in modules audio360-exo25.jar (audio360-exo25.jar) and audio360-exo28.jar (audio360-exo28.jar)
Duplicate class com.twobigears.audio360exo2.OpusRenderer found in modules audio360-exo25.jar (audio360-exo25.jar) and audio360-exo28.jar (audio360-exo28.jar)
Step2:找出关键点解决:
Gradle build failed
Gradle build failed意思是在使用Gradle发布时失败了
Unity2019+版本的安卓基本上都会使用Gradle发布,绝大多数情况,是由于Gradle的SDK不全所导致的,因为Gradle默认是从Google下载,但是在国内,大多数安装Unity或者发布Android时候,并不能连网到Google下载;遇到这种情况,有两种办法解决:
- 科学上网
- 自己下载Unity对应的Gradle SDK并使用,网上有相关的教程
作者这里的情况并不是Gradle不完整导致的,所以我们接着往下分析
使用或覆盖了已过时的 API
这个报错信息没办法直接看出特别有用的信息,我们再看后面的详细描述,Duplicate class com.twobigears.audio360exo.BuildConfig found in modules audio360-exo25.jar (audio360-exo25.jar) and audio360-exo28.jar (audio360-exo28.jar)
这句话能告诉我们具体的问题所在,意思是有一个东西,在“audio360-exo25.jar”和“audio360-exo28.jar”两个jar中都找到了,所以这里就起冲突了;这里的处理方式,只需要找到这两个jar然后删除其中一个就可以了;但是这两个jar在哪里去找?无非从几个地方入手,我们会想到Android发布,涉及到的内容:
- JDK、2、Andoird SDK、3、Gradle SDK(由于Gradle发布)、4、Unity项目
最终在Unity项目Plugins/Adroid路径下,找到这两个jar;删掉其中一个udio360-exo25.jar,重新发布,成功!
最后总结原因,是由于我们在项目中会使用到各种不同的插件,在将这些插件导入到项目中时,有可能多个不同的插件会包含并导入同一类但是版本不同的相关jar,这样在发布的时候就会报错;
相关文章
- 一个Java程序员对2011年的回顾
- 大数据发展历程
- Android高级进阶之路【一】Android中View绘制流程浅析
- 可信服务管理(Trusted Service Manager)介绍
- GIS应用|快速开发REST空间分析服务
- 未来十年微软长盛不衰的两项战略
- 领域驱动设计模式的收益与挑战
- cocos 3.0 一键打包android平台应该注意的细节
- 数智化时代,驱动企业转型升级的“三驾马车”是什么?
- 基于MINA构建高性能的NIO应用
- 使用Rainbond实现离线环境软件交付
- 工作流引擎 jBPM 5.2 发布
- 微信小程序Minium自动化测试(三)
- 桌面应用抢先体验,这次有点料!
- 甲骨文Java专利遭拒 起诉Android侵权受挫
- 云计算的应用领域及发展前景
- Java效率真的很低吗?Android为何要采用?
- Android高级进阶之路【二】十分钟彻底弄明白 View 事件分发机制
- 庖丁解牛之-Android平台RTSP|RTMP播放器设计
- 手机直付,超级方便