You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Unity 2021项目迁移至2022.3.26f1时遇Gradle构建错误

迁移Unity 2021项目至2022.3.26f1的Android编译问题解决方案

问题概述

将Unity 2021开发的项目迁移至Unity 2022.3.26f1后,无脚本错误但Android编译失败。项目集成Firebase、Facebook和PlayFab SDK,已重新导入SDK且Android Force Resolve执行正常。已解决android.enableR8编译错误,当前存在三个核心问题:


1. 仓库优先级冲突警告

问题表现:Build was configured to prefer settings repositories over project repositories but repository 'Google' was added by build file 'build.gradle'

解决步骤:
由于settingsTemplate.gradle中已设置repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS),所有仓库配置应统一在settings中管理,需修改baseProjectTemplate.gradle,移除allprojects下的冗余仓库配置:

修改后的baseProjectTemplate.gradle核心部分:

allprojects {
    buildscript {
        repositories {**ARTIFACTORYREPOSITORY**
            google()
            jcenter()
        }

        dependencies {
            classpath 'com.android.tools.build:gradle:7.1.2'
            classpath 'com.android.tools.lint:lint:26.3.2'
            **BUILD_SCRIPT_DEPS**
        }
    }
    // 移除原有的repositories块
}

2. flatDir使用警告

问题表现:Using flatDir should be avoided because it doesn't support any meta-data formats

解决步骤:
移除所有gradle文件中的flatDir配置:

  • 在settingsTemplate.gradle的dependencyResolutionManagement.repositories中删除flatDir块
  • 确保baseProjectTemplate.gradle中已移除allprojects.repositories下的flatDir块

Unity的Android Resolver会自动处理本地jar包依赖,无需手动配置flatDir。


3. 重复类导致构建失败(核心问题)

问题表现::launcher:checkReleaseDuplicateClasses失败,jetified-facebook-android-wrapper-14.1.0-runtime和jetified-facebook-android-wrapper-17.0.0-runtime存在大量重复类(如com.facebook.android.BuildConfig、com.facebook.unity.BaseActivity)

解决步骤:

  1. 清理旧版本残留文件:检查项目Assets/Plugins/Android目录,删除所有版本为14.1.0的Facebook相关jar包
  2. 排除依赖冲突:修改mainTemplate.gradle中的Google Ads Mediation Facebook依赖,排除旧版本的facebook-android-wrapper:
    // 替换原有的mediation依赖
    implementation('com.google.ads.mediation:facebook:6.12.0.0') {
        exclude group: 'com.facebook.android', module: 'facebook-android-wrapper'
    }
    
  3. 重新同步依赖:执行Unity菜单Assets > External Dependency Manager > Android Resolver > Force Resolve
  4. 清理缓存:删除项目根目录下的Library、Temp、Obj文件夹,重启Unity后重新构建

补充注意事项

  • 确保所有SDK版本适配Unity 2022:Firebase SDK已使用11.9.0(符合要求),Facebook SDK保持17.x版本即可
  • 验证mainTemplate.gradle中的compileOptions配置,确保sourceCompatibility和targetCompatibility均为JavaVersion.VERSION_11,与Unity 2022的要求匹配

内容的提问来源于stack exchange,提问作者WatchingSafe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:32:01