引用第三方库的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 'com.android.support:multidex:1.0.3'
}
二、如果你自定义了Application子类,需要在这个子类中重写一个方法
@Override
public void onCreate() {
super.onCreate();
// 主要是添加下面这句代码
MultiDex.install(this);
}
三、解决Android Studio 3.5.1版本在编译2.3.2得工程师 时报告错误"Could not find com.android.tools.build:aapt2:3.2.1-4818971"
增加
allprojects {
repositories {
google()
jcenter()
}
}