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