Unity Android发布 Gradle Build Failded,使用或覆盖了已过时的 API解决办法

Android Build Error

Step1:提取报错信息:

CommandInvokationFailure: Gradle build failed.

C:/Program Files/Unity/2019.4.36f1c1/Editor/Data/PlaybackEngines/AndroidPlayer\OpenJDK\bin\java.exe -classpath "C:\Program Files\Unity\2019.4.36f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"

stderr[

注: E:\_WorkSpace\02_ProjectSpace\02_Unity_Project\Ryunm_CommonTest\Temp\gradleOut\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity.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下载;遇到这种情况,有两种办法解决:

  1. 科学上网
  2. 自己下载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发布,涉及到的内容:

  1. JDK、2、Andoird SDK、3、Gradle SDK(由于Gradle发布)、4、Unity项目

最终在Unity项目Plugins/Adroid路径下,找到这两个jar;删掉其中一个udio360-exo25.jar,重新发布,成功!

最后总结原因,是由于我们在项目中会使用到各种不同的插件,在将这些插件导入到项目中时,有可能多个不同的插件会包含并导入同一类但是版本不同的相关jar,这样在发布的时候就会报错;

猜你喜欢

转载自blog.csdn.net/qq_24177301/article/details/125934624