Error: Cannot fit requested classes in a single dex file (# methods: 149346 > 65536)

2266 ワード

サードパーティ製ライブラリを参照するjarファイルは、このエラーをトリガーする可能性があります.ソリューションは次のとおりです.
参考『[Android]Cannot fit requested classes in a single dex file.Try supplying a main-dex list.』
一、appのbuild.gradleに依存を追加し、defaultConfigに以下のコードを追加します【注意:appというmoduleでなければなりません.他のmoduleではありません】
apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.why.project.poidemo"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        //
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    //poi
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'com.android.support:multidex:1.0.3'
}

二、アプリケーションサブクラスをカスタマイズした場合は、このサブクラスにメソッドを書き換える必要があります.
@Override
public void onCreate() {
    super.onCreate();
    //            
    MultiDex.install(this);
}

 
転載先:https://www.cnblogs.com/whycxb/p/9792192.html