Unity构建Android项目失败:找不到com.android.application 7.3.1插件
问题重现
导出Android项目时遭遇Gradle构建失败,错误详情如下:
FAILURE: 构建失败,出现异常。
位置:
构建文件 'a\Library\Bee\Android\Prj\IL2CPP\Gradle\build.gradle' 第6行错误原因:
未在以下任何来源中找到插件 [id: 'com.android.application', version: '7.3.1', apply: false]:Gradle核心插件(插件不在 'org.gradle' 命名空间下)
插件仓库(无法解析插件工件 'com.android.application:com.android.application.gradle.plugin:7.3.1')
已在以下仓库中搜索:
Gradle中央插件仓库
MavenRepoBUILD FAILED in 4s
环境配置:
- Unity版本:2023.2.5f1
- JDK版本:jdk-11
- NDK版本:android-ndk-r23b
- SDK API级别:32
导出后的settings.gradle代码:
pluginManagement { repositories { **ARTIFACTORYREPOSITORY** gradlePluginPortal() google() mavenCentral() } } include ':launcher', ':unityLibrary' **INCLUDES** dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { **ARTIFACTORYREPOSITORY** google() mavenCentral() flatDir { dirs "${project(':unityLibrary').projectDir}/libs" } } }
解决方案
1. 处理无效仓库占位符
**ARTIFACTORYREPOSITORY**是Unity生成的占位符:
- 若未使用Artifactory私有仓库,直接删除这两行代码;
- 若使用私有仓库,替换为实际仓库地址:
maven { url 'https://你的私有仓库地址' }
2. 调整仓库访问顺序
将google()移至pluginManagement的repositories列表最前端,确保Gradle优先从Google仓库查找Android插件:
pluginManagement { repositories { google() gradlePluginPortal() mavenCentral() // 私有仓库地址放在这里(如果有) } }
3. 配置国内镜像(网络受限场景)
若无法直接访问Google或MavenCentral仓库,添加国内镜像仓库:
pluginManagement { repositories { google() maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/central' } gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { google() maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/central' } flatDir { dirs "${project(':unityLibrary').projectDir}/libs" } } }
4. 验证Gradle版本兼容性
com.android.application:7.3.1要求Gradle 7.4及以上版本。检查项目中gradle/wrapper/gradle-wrapper.properties的distributionUrl:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
若版本低于7.4,修改后重新构建。
5. 清理缓存后重新导出
删除项目根目录下的Library文件夹,重新导出Android项目,避免旧缓存配置干扰构建。
内容的提问来源于stack exchange,提问作者Matin

