使用 Unity 构建适用于 Android 11 的应用

为了支持 Android 11(API 级别 30),我们在 AR Foundation 的 ARCore Extensions(1.19 或更高版本)中添加了软件包可见性 <queries> 元素。使用这些版本的 ARCore 时,<queries> 元素需要 Gradle 5.6.4 或更高版本。

在大多数情况下,使用 Android Gradle 插件 3.6.0 版就足够了。如需确认 Android Gradle 插件与您使用的 Gradle 版本之间的兼容性,请参阅 Android Gradle 插件兼容性表

Unity gradle 支持

以下部分列出了适用于受支持 Unity 版本的说明。

如需了解详情,请参阅以下文章:

Unity 2021 及更高版本

所有版本的 Unity 2021 都支持以 Android 11 为目标平台。如需了解详细的版本信息,请参阅 Unity 2021 版 Gradle for Android 文档。总结:

  • 2021.1 到 2021.1.15f1(包括这两个版本)的 Unity 版本附带 Gradle 5.6.4 或更高版本(以及 Gradle 插件 3.6.0 或更高版本)。您无需执行任何操作。

  • Unity 2021.1.16f1 及更高版本附带 Gradle 6.1.1 或更高版本(以及 Gradle 插件 4.0.1 或更高版本)。您无需执行任何操作。

Unity 2020

所有版本的 Unity 2020 都支持以 Android 11 为目标平台。如需了解详细的版本信息,请参阅 Unity 2020 版 Gradle for Android 文档。总结:

  • Unity 2020.1、2020.2 和 2020.3(包括 2020.3.14f1)附带 Gradle 5.6.4 或更高版本(以及 Gradle 插件 3.6.0 或更高版本)。您无需执行任何操作。

  • Unity 2020.3.15f1 及更高版本附带 Gradle 6.1.1 或更高版本(以及 Gradle 插件 4.0.1 或更高版本)。您无需执行任何操作。

Unity 2019.4

  1. 在 Unity 中,打开 Unity Preferences > External Tools 并将自定义 Gradle 设置为 Gradle 5.6.4 或更高版本。请参阅 Gradle build 工具进行下载。

    外部工具“Android”窗格的屏幕截图,显示了手动指定的 Gradle 路径。

  2. 前往 Project Settings > Player > Android > Publishing Settings > Build,然后选择以下两个选项:

    1. Custom Main Gradle Template
    2. Custom Launcher Gradle Template

    一张屏幕截图,显示了“发布设置”的“Build”窗格,其中两个 Gradle 模板选项均处于选中状态

  3. 对两个生成的文件应用以下更改:

    • Assets/Plugins/Android/mainTemplate.gradle
    • Assets/Plugins/Android/launcherTemplate.gradle

    移除文件顶部的以下注释(如果存在):

    // GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
    

    在文件顶部插入以下代码行:

    buildscript {
        repositories {
            google()
            mavenCentral()
        }
        dependencies {
            // Must be Android Gradle Plugin 3.6.0 or later. For a list of
            // compatible Gradle versions refer to:
            // https://developer.android.com/studio/releases/gradle-plugin
            classpath 'com.android.tools.build:gradle:3.6.0'
        }
    }
    
    allprojects {
       repositories {
          google()
          mavenCentral()
          flatDir {
            dirs 'libs'
          }
       }
    }