Unity Editor는 특정 버전의 Gradle로 버전이 잠겨 있습니다. 이전 버전의 Unity Editor는 최신 버전의 Google 모바일 광고와 호환되지 않는 이전 버전의 Gradle을 사용합니다.
다음 표에는 Unity Editor에 따라 사용할 수 있는 Google 모바일 광고 플러그인의 가장 높은 호환 버전이 나와 있습니다.
Unity Editor | Google 모바일 광고 Unity 플러그인 버전 |
---|---|
2023.1 이상 | 최신 |
2021.3.41f1~2022.3 | 9.1.0 |
2021.3.37f1 이하 | 8.5.3 |
이전 버전의 Unity Editor 등 최신 버전의 Google 모바일 광고 Unity 플러그인을 사용하도록 Gradle을 수동으로 업데이트할 수 있습니다. Android를 빌드하려면 원하는 버전의 Unity Editor를 선택하세요.
2023.1 이상
맞춤 Gradle 템플릿 사용 설정
Project Settings(프로젝트 설정) > Player(플레이어) > Android > Publishing Settings(게시자 설정) > Build(빌드)로 이동하여 Custom Main Gradle Template
및 Custom Gradle Properties Template
을 사용 설정합니다.

대상 API 수준 34 설정
기본 메뉴에서 Edit(편집) > Project Settings(프로젝트 설정) > Player(플레이어) > Android > Other Settings(기타 설정)를 열고 Target API Level(대상 API 수준)을 API Level 34(API 수준 34) 이상으로 설정합니다.

2021.3.41f1~2022.3
맞춤 Gradle 템플릿 사용 설정
Project Settings(프로젝트 설정) > Player(플레이어) > Android > Publishing Settings(게시자 설정) > Build(빌드)로 이동하여 Custom Main Gradle Template
및 Custom Gradle Properties Template
을 사용 설정합니다.

대상 API 수준 34 설정
기본 메뉴에서 Edit(편집) > Project Settings(프로젝트 설정) > Player(플레이어) > Android > Other Settings(기타 설정)를 열고 Target API Level(대상 API 수준)을 API Level 34(API 수준 34) 이상으로 설정합니다.

'gradleTemplate.properties'에 jetifier 차단 목록 추가
Assets/Plugins/Android/gradleTemplate.properties
를 수정하고 다음 행을 추가합니다.
android.jetifier.blacklist=annotation-experimental-1.4.0.aar
'AndroidManifest.xml'에서 'minSDKVersion'삭제
Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml
을 수정하고 uses-sdk
노드에서 android:minSdkVersion="21"
을 삭제합니다.
AndroidManifest.xml
은 다음과 같아야 합니다.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity.ads" android:versionName="1.0" android:versionCode="1"> <uses-sdk /> <application> <uses-library android:required="false" android:name="org.apache.http.legacy"/> </application> </manifest>
2021.3.37f1~2019.4
기본 요건
계속하기 전에 다음 사항을 확인하세요.
- Android 스튜디오의 최신 안정화 버전을 다운로드하고 설치합니다.
- 선택사항: Android 빌드에 관한 자세한 내용은 Android 빌드의 Java 버전을 참고하세요.
맞춤 Gradle 템플릿 사용 설정
Project Settings(프로젝트 설정) > Player(플레이어) > Android > Publishing Settings(게시자 설정) > Build(빌드)로 이동하여 Custom Main Gradle Template
및 Custom Gradle Properties Template
을 사용 설정합니다.

대상 API 수준 34 설정
기본 메뉴에서 Edit(편집) > Project Settings(프로젝트 설정) > Player(플레이어) > Android > Other Settings(기타 설정)를 열고 Target API Level(대상 API 수준)을 API Level 34(API 수준 34) 이상으로 설정합니다.

Android 스튜디오로 내보내기
File(파일)(또는 MacOS의 경우 Unity Editor) > Build Settings(빌드 설정)를 선택하고 Export Project(프로젝트 내보내기)를 선택하여 Android 빌드 설정을 수정합니다.

Android SDK 플랫폼 API 수준 34가 없다는 경고가 표시되면 'Android SDK 업데이트' 옵션을 선택합니다.
Android 스튜디오 열기
이 섹션에는 Android 스튜디오 내에서 수행되는 단계가 포함되어 있습니다.
Gradle JDK 구성 업데이트
파일(또는 MacOS의 경우 Android 스튜디오) > 설정 > 빌드 > 실행 > 배포 > 빌드 도구 > Gradle에서 Gradle 설정을 엽니다. Gradle JDK 드롭다운을 찾아 Gradle JDK에서 JDK 17 이상을 사용하도록 설정합니다.

JDK 17이 설치되어 있지 않으면 Gradle JDK 메뉴 바에서 JDK 다운로드 옵션을 선택하고 호환되는 버전을 다운로드합니다. Android 스튜디오의 배포와 일치하도록 aarch64를 지원하는 JetBrains 런타임 공급업체를 사용하는 것이 좋습니다.
프로젝트 수준 build.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 }
/gradle/gradle-wrapper.properties
업데이트
Gradle 8.1.1 이상을 사용하도록 distributionUrl
을 설정합니다.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
launcher/build.gradle
업데이트
launcher/AndroidManifest.xml
의package
속성 값을 사용하여namespace
속성을 설정합니다.sourceCompatibility
및targetCompatibility
를 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'
프로젝트 수준 settings.gradle
업데이트
pluginManagement
및 dependencyResolutionManagement
섹션을 설정합니다.
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" } } }
unityLibrary/build.gradle 업데이트
"com.unity3d.player"
값으로namespace
를 설정합니다.sourceCompatibility
및targetCompatibility
를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' }
unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle 업데이트
"com.google.unity.ads"
값으로 namespace
속성을 설정합니다.
apply plugin: 'android-library' dependencies { implementation fileTree(dir: 'bin', include: ['<em>.jar']) implementation fileTree(dir: 'libs', include: ['</em>.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 } }
Android 프로젝트 실행
Android 스튜디오에서 gradle 동기화를 실행하고 프로젝트를 실행합니다.