メソッド数を削減する対応について(Android)
Androidの動画リワード等で多くのライブラリファイルを実装する場合、以下のエラーが発生してBuild
ができない場合があります。
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':transformClassesWithDexForRelease'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
1
2
3
4
5
2
3
4
5
この場合、以下のどちらかの方法をご検討ください。
不要ライブラリの削除
呼び出しをしていないアドネットワークを呼び出す設定を削除してください。
動画リワード広告(Androidパッケージビルド手順)で記載している全アドネットワークを一括で導入する場合
を使用している場合、使用するアドネットワークのみの各導入手順を実施してください。
Multidexの実装
Multidex サポートを有効にして、6万5千を超えるメソッド数を扱えるようにする方法があります。
Assets/PlayServicesResolver/Editor/GNDependencies.xml
を開き、以下のどちらかの設定を追加してください。
a. androidxの場合
<androidPackage spec="androidx.multidex:multidex:2.0.1">
<androidSdkPackageIds>
<androidSdkPackageId>extra-google-m2repository</androidSdkPackageId>
</androidSdkPackageIds>
<repositories>
<repository>https://maven.google.com</repository>
</repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
b. android.supportの場合
<androidPackage spec="com.android.support:multidex:1.0.3">
<androidSdkPackageIds>
<androidSdkPackageId>extra-google-m2repository</androidSdkPackageId>
</androidSdkPackageIds>
<repositories>
<repository>https://maven.google.com</repository>
</repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Plugins/Android/mainTemplate.gradle
を開き、以下のようにdefaultConfig
にmultiDexEnabled true
を追加してください。
buildscript {
maven {
url 'https://maven.google.com'
}
}
dependencies {
implementation 'androidx.multidex:multidex:2.0.1'
}
android {
defaultConfig {
multiDexEnabled true
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Plugins/Android/mainTemplate
を開き、以下のように設定からuseProguard **PROGUARD_DEBUG**
を削除してください。
buildTypes {
debug {
minifyEnabled **MINIFY_DEBUG**
useProguard **PROGUARD_DEBUG**
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'**USER_PROGUARD**
jniDebuggable true
}
release {
minifyEnabled **MINIFY_RELEASE**
useProguard **PROGUARD_RELEASE**
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'**USER_PROGUARD**
**SIGNCONFIG**
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
以下のようになります。
buildTypes {
debug {
minifyEnabled **MINIFY_DEBUG**
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'**USER_PROGUARD**
jniDebuggable true
}
release {
minifyEnabled **MINIFY_RELEASE**
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'**USER_PROGUARD**
**SIGNCONFIG**
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
← よくある質問 バグ報告/要望/問い合わせ →