我在构建 Flutter 应用程序时遇到了问题,我按照官方指南解决了这个问题:
https://developer.android.com/studio/build/multidex
您只需:
0. (Android: 转到重构 > 迁移到 AndroidX
(如果您在 Flutter 项目中,要迁移模块,您必须转到 Tools > Flutter > Open for Editing in Android Studio
1.(Both)修改模块级build.gradle文件启用multidex,并将multidex库添加为依赖,如下图:
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 28
multiDexEnabled true
}
...
}
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
2。 (non-Flutter)如果你不覆盖 Application 类,编辑你的清单文件在 标签中设置 android:name 如下:
<?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) 如果你不覆盖 Application 类,编辑你的清单文件,在 标签中设置 android:name 如下:
<?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) 在project/android/app/src/main/[java or kotlin folder]/[your/package/appName]下创建自定义类
kotlin 版本: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版本: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。 (两者)如果你做到了,那就庆祝吧! :D
有关更多信息,请查看官方指南;)
https://developer.android.com/studio/build/multidex