1. 程式人生 > >Error: Cannot fit requested classes in a single dex file (# methods: 149346 > 65536)

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

adl testin cati per 解決 tree and ons oid

引用第三方庫的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‘
}

二、如果你自定義了Application子類,需要在這個子類中重寫一個方法

@Override
public void onCreate() {
    super.onCreate();
    // 主要是添加下面這句代碼
    MultiDex.install(this);
}

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