• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
_铲铲
帮助1

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,这样在发布的时候就会报错;

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfkcac
系列文章
更多 icon
同类精品
更多 icon
继续加载