I encountered the issue building a Flutter application and I resolved it following the official guide:
https://developer.android.com/studio/build/multidex
You simply have to:
0. (Android: Go to Refactor > Migrate to AndroidX
(If you are on a Flutter project, to migrate the module, you have to go to Tools > Flutter > Open for Editing in Android Studio
1. (Both) Modify the module-level build.gradle file to enable multidex and add the multidex library as a dependency, as shown here:
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 28
multiDexEnabled true
}
...
}
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
2. (non-Flutter) If you do not override the Application class, edit your manifest file to set android:name in the <application> tag as follows:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
</manifest>
2. (Flutter) If you do not override the Application class, edit your manifest file to set android:name in the <application> tag as follows:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
android:name=".App" >
...
</application>
</manifest>
3.(Flutter) Create a custom class under project/android/app/src/main/[java or kotlin folder]/[your/package/appName]
kotlin version: App.kt
package your.package.appName
import io.flutter.app.FlutterApplication
import android.content.Context
import androidx.multidex.MultiDex
class App : FlutterApplication() {
override fun attachBaseContext(base: Context) {
super.attachBaseContext(base)
MultiDex.install(this)
}
}
java version: App.java
package your.package.appName;
import io.flutter.app.FlutterApplication;
import android.content.Context;
import androidx.multidex.MultiDex;
public class App extends FlutterApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
4. (Both) Celebrate if you did it!! :D
For more info, check out the official guide ;)
https://developer.android.com/studio/build/multidex