Unity 编辑器的版本锁定为特定版本的 Gradle,这可能会与较新 Android 软件包(例如 Google 移动广告)所需的依赖项冲突。以下指南介绍了如何在较低版本的 Unity 编辑器上生成 Android build。
下表根据您的 Unity 编辑器,推荐了可兼容的最高 Google 移动广告插件版本。
Unity 编辑器 | 推荐的 Google 移动广告 Unity 插件版本 |
---|---|
2023.1 或更高版本 | 最新 |
2021.3.41f1 - 2022.3 | 9.1.0 |
2021.3.37f1 或更低版本 | 8.5.3 |
前提条件
- 下载并安装最新的稳定版 Android Studio。
- 如需更好地了解如何为 Android 构建应用,请参阅 Android build 中的 Java 版本。
更新了 2022.3 及更低版本的 build 设置
在将项目导出到 Android Studio 之前,Unity 2022.3 及更低版本需要更改 build 设置。
生成 baseProjectTemplate.gradle
启用自定义 Gradle 模板。依次前往 Project Settings > Player > Android > Publishing Settings > Build,然后选择 Custom Base Gradle Template。这会生成
Plugins/Android/baseProjectTemplate.gradle
文件。修改
Plugins/Android/baseProjectTemplate.gradle
文件以使用 Gradle 工具版本 8.1.1 或更高版本。plugins { id 'com.android.application' version '8.1.1' apply false id 'com.android.library' version '8.1.1' apply false } task clean(type: Delete) { delete rootProject.buildDir }
Unity 2021.3.37f1 及更低版本的其他变更
若要将 Unity 2021.3.37f1 及更低版本的兼容性升级到 Gradle 8.1.1,需要进行额外的更改。请完成以下步骤:
生成 launcherTemplate.gradle
依次前往 Project Settings > Player > Android > Publishing Settings > Build,然后选择 Launcher Gradle Template。这会生成
Plugins/Android/launcherTemplate.gradle
文件。修改
Plugins/Android/launcherTemplate.gradle
以添加命名空间属性。命名空间属性值应与启动器模块的AndroidManifest.xml
文件中找到的软件包属性匹配。android { // TODO: Replace with your app's package name. namespace 'com.google.android.gms.example' }
生成 mainTemplate.gradle
- 依次前往 Project Settings > Player > Android > Publishing Settings > Build,然后选择 Main Gradle Template。这会生成
Plugins/Android/mainTemplate.gradle
文件。
.
修改
Plugins/Android/mainTemplate.gradle
以添加值为com.unity3d.player
的命名空间属性。android { namespace 'com.unity3d.player' }
导出到 Android Studio
修改 Android build 设置以导出 Unity 项目。
如需导出到 Android Studio,请修改 Android build 设置。依次选择 File(或在 macOS 上,依次选择 Unity Editor)> Build Settings,然后选中 Export Project:
按“Build Settings”对话框底部的 Export 按钮。 Unity 会在所选位置生成一个 Android 项目。
在 Android Studio 中打开导出的项目。
更新 Gradle JDK 配置以使用 JDK 17
- 使用 Android Studio,依次选择 File(或在 macOS 上,依次选择 Android Studio)> Settings > Build, Execution, Deployment > Build Tools > Gradle,打开 Gradle 设置。
找到 Gradle JDK 下拉菜单。修改 Gradle JDK 以使用 JDK 17。
如果您尚未安装 JDK 17,请从 Gradle JDK 下拉菜单中选择 Download JDK 选项,然后下载兼容的版本。我们建议使用支持
arch64
的 JetBrains 运行时供应商,以便与 Android Studio 分发的内容保持一致。
更新 Gradle 封装容器文件
修改 gradle/wrapper/gradle-wrapper.properties
中的 distributionUrl 参数,以使用 Gradle 8.0.1 或更高版本。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip
适用于 Unity 2021.3.37f1 及更低版本的其他 Android Studio 变更
若要将兼容性升级到 Gradle 8.1.1,Unity 2021.3.37f1 及更低版本需要进行额外的更改。请完成以下步骤:
修改
gradle.properties
并移除android.enableR8=false
属性。修改
unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle
,并添加值为"com.google.unity.ads"
的命名空间属性:apply plugin: 'android-library' dependencies { implementation fileTree(dir: 'bin', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar']) } android { namespace "com.google.unity.ads" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' //java.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs.srcDirs = ['libs'] } } compileSdkVersion 35 buildToolsVersion '30.0.3' defaultConfig { targetSdkVersion 31 } lintOptions { abortOnError false } }
运行 Android 项目
完成这些步骤后,Unity 应用就已准备就绪。在 Android Studio 中,运行 Gradle 同步,然后运行项目。