Xây dựng Unity cho Android

Trình chỉnh sửa Unity bị khoá phiên bản thành một phiên bản cụ thể của Gradle. Các phiên bản cũ của Trình chỉnh sửa Unity sử dụng các phiên bản Gradle cũ không tương thích với phiên bản mới nhất của Google Mobile Ads.

Bảng sau đây cho biết phiên bản trình bổ trợ Google Mobile Ads tương thích tối đa mà bạn có thể sử dụng dựa trên Trình chỉnh sửa Unity:

Trình chỉnh sửa Unity Phiên bản trình bổ trợ Unity dành cho quảng cáo trên thiết bị di động của Google
2023.1 trở lên Mới nhất
2021.3.41f1 – 2022.3 9.1.0
2021.3.37f1 trở về trước 8.5.3

Bạn có thể cập nhật Gradle theo cách thủ công để sử dụng trình bổ trợ Unity mới nhất của Google Mobile Ads, bao gồm cả các Trình chỉnh sửa Unity cũ. Để tạo bản dựng Android, hãy chọn phiên bản Trình chỉnh sửa Unity mà bạn muốn:

Điều kiện tiên quyết

Trước khi tiếp tục, hãy đảm bảo bạn có:

Bật mẫu Gradle tuỳ chỉnh

Chuyển đến Project Settings (Cài đặt dự án) > Player (Trình phát) > Android > Publishing Settings (Cài đặt phát hành) > Build (Bản dựng) và bật Custom Main Gradle TemplateCustom Gradle Properties Template.

Bật mẫu Gradle tuỳ chỉnh

Đặt Cấp độ API mục tiêu là 34

Trên trình đơn chính, hãy mở Edit (Chỉnh sửa) > Project Settings (Cài đặt dự án) > Player (Trình phát) > Android > Other Settings (Cài đặt khác) rồi đặt Target API Level (Cấp độ API mục tiêu) thành API cấp 34 trở lên.

Đặt cấp độ API mục tiêu

Chạy dự án Android

Trong Android Studio, hãy chạy tính năng đồng bộ hoá gradlechạy dự án.

Điều kiện tiên quyết

Trước khi tiếp tục, hãy đảm bảo bạn có:

  • Tải và cài đặt phiên bản ổn định mới nhất của Android Studio.

Bật mẫu Gradle tuỳ chỉnh

Chuyển đến Project Settings (Cài đặt dự án) > Player (Trình phát) > Android > Publishing Settings (Cài đặt phát hành) > Build (Bản dựng) và bật Custom Main Gradle TemplateCustom Gradle Properties Template.

Bật mẫu Gradle tuỳ chỉnh

Đặt Cấp độ API mục tiêu là 34

Trên trình đơn chính, hãy mở Edit (Chỉnh sửa) > Project Settings (Cài đặt dự án) > Player (Trình phát) > Android > Other Settings (Cài đặt khác) rồi đặt Target API Level (Cấp độ API mục tiêu) thành API cấp 34 trở lên.

Đặt cấp độ API mục tiêu

Xuất sang Android Studio

Sửa đổi chế độ cài đặt bản dựng Android bằng cách chọn File (Tệp) (hoặc Unity Editor trên MacOS) > Build Settings (Cài đặt bản dựng) rồi đánh dấu vào Export Project (Xuất dự án):

Xuất dự án

Mở Android Studio

Phần này chứa các bước thực hiện trong Android Studio.

Cập nhật cấu hình JDK Gradle

Mở phần cài đặt Gradle từ File (Tệp hoặc Android Studio trên MacOS) > Settings (Cài đặt) > Build (Xây dựng) > Execution (Thực thi) > Deployment (Triển khai) > Build Tools (Công cụ xây dựng) > Gradle. Tìm trình đơn thả xuống Gradle JDK (JDK của Gradle) rồi đặt JDK của Gradle để sử dụng JDK 17 trở lên.

Cập nhật cấu hình JDK Gradle

Nếu bạn chưa cài đặt JDK 17, hãy chọn tuỳ chọn Download JDK (Tải JDK xuống) trên thanh trình đơn JDK của Gradle rồi tải phiên bản tương thích xuống. Bạn nên sử dụng nhà cung cấp thời gian chạy JetBrains có hỗ trợ aarch64 để khớp với nội dung mà Android Studio phân phối.

Cập nhật build.gradle ở cấp dự án

Đặt phiên bản công cụ Gradle thành 8.1.1 trở lên.


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
}

Cập nhật /gradle/gradle-wrapper.properties

Đặt distributionUrl để sử dụng Gradle 8.1.1 trở lên.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

Chạy dự án Android

Trong Android Studio, hãy chạy tính năng đồng bộ hoá gradlechạy dự án.

Điều kiện tiên quyết

Trước khi tiếp tục, hãy đảm bảo bạn có:

  • Tải và cài đặt phiên bản ổn định mới nhất của Android Studio.

Bật mẫu Gradle tuỳ chỉnh

Chuyển đến Project Settings (Cài đặt dự án) > Player (Trình phát) > Android > Publishing Settings (Cài đặt phát hành) > Build (Bản dựng) và bật Custom Main Gradle TemplateCustom Gradle Properties Template.

Bật mẫu Gradle tuỳ chỉnh

Đặt Cấp độ API mục tiêu là 34

Trên trình đơn chính, hãy mở Edit (Chỉnh sửa) > Project Settings (Cài đặt dự án) > Player (Trình phát) > Android > Other Settings (Cài đặt khác) rồi đặt Target API Level (Cấp độ API mục tiêu) thành API cấp 34 trở lên.

Đặt cấp độ API mục tiêu

Xuất sang Android Studio

Sửa đổi chế độ cài đặt bản dựng Android bằng cách chọn File (Tệp) (hoặc Unity Editor trên MacOS) > Build Settings (Cài đặt bản dựng) rồi đánh dấu vào Export Project (Xuất dự án):

Xuất dự án

Nếu bạn nhận được cảnh báo về việc thiếu API cấp 34 của nền tảng SDK Android, hãy chọn tuỳ chọn "Cập nhật SDK Android".

Mở Android Studio

Phần này chứa các bước thực hiện trong Android Studio.

Cập nhật cấu hình JDK Gradle

Mở phần cài đặt Gradle từ File (Tệp hoặc Android Studio trên MacOS) > Settings (Cài đặt) > Build (Xây dựng) > Execution (Thực thi) > Deployment (Triển khai) > Build Tools (Công cụ xây dựng) > Gradle. Tìm trình đơn thả xuống Gradle JDK (JDK của Gradle) rồi đặt JDK của Gradle để sử dụng JDK 17 trở lên.

Cập nhật cấu hình JDK Gradle

Nếu bạn chưa cài đặt JDK 17, hãy chọn tuỳ chọn Download JDK (Tải JDK xuống) trên thanh trình đơn JDK của Gradle rồi tải phiên bản tương thích xuống. Bạn nên sử dụng nhà cung cấp thời gian chạy JetBrains có hỗ trợ aarch64 để khớp với nội dung mà Android Studio phân phối.

Cập nhật build.gradle ở cấp dự án

Đặt phiên bản công cụ Gradle thành 8.1.1 trở lên.


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
}

Cập nhật /gradle/gradle-wrapper.properties

Đặt distributionUrl để sử dụng Gradle 8.1.1 trở lên.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

Cập nhật launcher/build.gradle

  • Đặt thuộc tính namespace bằng cách sử dụng giá trị của thuộc tính package từ launcher/AndroidManifest.xml
  • Đặt sourceCompatibilitytargetCompatibility thành Java 17

apply plugin: 'com.android.application'

dependencies {
    implementation project(':unityLibrary')
}

android {
    namespace "com.google.android.gms.example"
    compileSdkVersion 35
    buildToolsVersion '35.0.0'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    defaultConfig {
        minSdkVersion 28
        targetSdkVersion 35
        applicationId 'com.google.android.gms.example'
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        }
        versionCode 1
        versionName '1.0'
    }

    aaptOptions {
        noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.bundle', '.unityexp']
        ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }

    lintOptions {
        abortOnError false
    }

    buildTypes {
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
            signingConfig signingConfigs.debug
            jniDebuggable true
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
            signingConfig signingConfigs.debug
        }
    }

    packagingOptions {
        doNotStrip '*/armeabi-v7a/*.so'
        doNotStrip '*/arm64-v8a/*.so'
        doNotStrip '*/x86/*.so'
        doNotStrip '*/x86_64/*.so'
        jniLibs {
            useLegacyPackaging true
        }
    }

    bundle {
        language {
            enableSplit = false
        }
        density {
            enableSplit = false
        }
        abi {
            enableSplit = true
        }
    }
}

apply from: '../unityLibrary/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'

Cập nhật settings.gradle cấp dự án

Đặt các phần pluginManagementdependencyResolutionManagement.


pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}

include ':launcher', ':unityLibrary'
include 'unityLibrary:GoogleMobileAdsPlugin.androidlib'

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositories {

        google()
        mavenCentral()
        flatDir {
            dirs "${project(':unityLibrary').projectDir}/libs"
        }
    }
}

Cập nhật unityLibrary/build.gradle

  • Đặt namespace bằng giá trị "com.unity3d.player"
  • Đặt sourceCompatibilitytargetCompatibility thành JavaVersion.VERSION_17

    apply plugin: 'com.android.library'

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        // Android Resolver Dependencies Start
        implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
        implementation 'com.google.android.gms:play-services-ads:23.6.0'
        implementation 'com.google.android.ump:user-messaging-platform:3.1.0'
        // Android Resolver Dependencies End
        implementation(name: 'googlemobileads-unity', ext:'aar')
        implementation project('GoogleMobileAdsPlugin.androidlib')
    }

    // Android Resolver Exclusions Start
    android {
      packagingOptions {
          exclude ('/lib/armeabi/*' + '*')
          exclude ('/lib/mips/*' + '*')
          exclude ('/lib/mips64/*' + '*')
          exclude ('/lib/x86/*' + '*')
      }
    }
    // Android Resolver Exclusions End

    android {
        namespace "com.unity3d.player"
        compileSdkVersion 34
        buildToolsVersion '30.0.2'

        compileOptions {
            sourceCompatibility JavaVersion.VERSION_17
            targetCompatibility JavaVersion.VERSION_17
        }

        defaultConfig {
            minSdkVersion 28
            targetSdkVersion 34
            ndk {
                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
            }
            versionCode 1
            versionName '1.0'
            consumerProguardFiles 'proguard-unity.txt'
        }

        lintOptions {
            abortOnError false
        }

        aaptOptions {
            ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
        }

        packagingOptions {
            doNotStrip '*/armeabi-v7a/*.so'
            doNotStrip '*/arm64-v8a/*.so'
            doNotStrip '*/x86_64/*.so'
        }
    }


    apply from: 'GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'
    gradle.projectsEvaluated { apply from: 'GoogleMobileAdsPlugin.androidlib/validate_dependencies.gradle' }

Cập nhật unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle

Đặt thuộc tính namespace thành giá trị "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 34
    buildToolsVersion '30.0.2'
    defaultConfig {
        targetSdkVersion 31
    }

    lintOptions {
        abortOnError false
    }
}

Chạy dự án Android

Trong Android Studio, hãy chạy tính năng đồng bộ hoá gradlechạy dự án.