Unity项目从Unity2022.1.19升级到Unity2022.2之后,导出安卓包出现问题
A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
Duplicate class android.support.v4.app.RemoteActionCompatParcelizer found in modules core-1.1.0-runtime (androidx.core:core:1.1.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
后面还有一大堆类似的错误信息,都是关于Duplicate class的
项目只是升级,并没有添加新的库,因为升级后Gradle版本也升级,所以各类和Gradle相关的模版都是用了默认的。
如有解决,另有答谢!
基于AI的解答就不必了,我已经试过了。
implementation('com.example.library:library:1.0') {
exclude group: 'androidx.core', module: 'core'
}
自己找到原因了,因为gradle版本升级,需要手工修改gradle相关的几个配置文件,改了配置就好了。
这个问题通常是由于项目中存在重复的类引起的,可能是由于依赖库的版本冲突导致的。要解决这个问题,你可以尝试以下几个步骤:
清理项目:在Unity中选择File -> Build Settings
,然后点击Clean Project
按钮。这将清理项目中生成的临时文件和缓存。
检查依赖库:确保项目中使用的所有依赖库都是与Unity 2022.2 兼容的,并且版本是最新的。检查项目中使用的所有插件和库,并确保它们的版本与Unity 2022.2 兼容。如果发现不兼容的库或者重复的库,尝试更新它们或者删除重复的库。
解决依赖冲突:如果发现有冲突的依赖库版本,你可以尝试使用androidDependencies
来排除冲突的库。在Unity项目的Packages
目录下,找到manifest.json
文件,然后在dependencies
中添加以下代码来排除冲突的库:
"dependencies": {
"com.android.support:support-v4": "exclude",
"androidx.core:core": "exclude"
}
这将排除冲突的依赖库,确保只有一个版本被使用。
更新Gradle版本:在Unity中选择Edit -> Project Settings -> Player
,然后在Inspector窗口的Other Settings
下找到Scripting Runtime Version
,将其设置为最新的版本。
更新Android插件:在Unity中选择Edit -> Project Settings -> Player
,然后在Inspector窗口的Other Settings
下找到Minimum API Level
,将其设置为与Gradle版本兼容的API级别。
清除Gradle缓存:打开终端或命令提示符,导航到Unity项目的Temp
目录,并执行以下命令来清除Gradle缓存:
./gradlew cleanCache
这将清除Gradle的本地缓存。
重新生成项目:重新打开Unity项目,并进行重新导出安卓包的尝试。确保在导出过程中没有其他报错或警告信息。
如果以上步骤没有解决问题,你可能需要进一步检查项目中的依赖关系和引用情况,并尝试逐个排除可能引起冲突的部分。你还可以在Unity官方论坛或相关社区中搜索类似的问题,寻求更多的帮助和解决方案。