引用第三方库的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); }
原文地址:https://www.cnblogs.com/whycxb/p/9792192.html
时间: 2024-11-18 23:48:19