每当我尝试运行我的App时,它始终会失败并显示此错误
- 出了什么问题: 任务':app:transformClassesWithMultidexlistForDebug'的执行失败。 com.android.build.api.transform.TransformException:生成主dex列表时出错。
我已经尝试解决了几天,但没有解决方案。
我试图降级Firebase依赖版本,更改了最低sdk版本以及Internet上可用的许多其他功能。可能这是Firebase依赖项的版本问题,但我无法掌握。
这是我的 pubspec.yaml 文件
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
url_launcher: ^4.0.2
dio: any
path_provider: any
carousel_pro: ^0.0.13
firebase_messaging: ^5.0.1
sqflite: any
#cloud_firestore: ^0.7.4
firebase_database: ^3.0.0
photo_view: ^0.2.2
webview_flutter: ^0.3.4
flutter_webview_plugin: ^0.3.5
dev_dependencies:
flutter_test:
sdk: flutter
flutter_launcher_icons: ^0.7.0
这是 app / build.gradle文件,其中需要对该解决方案进行一些更改,但是没有用。我还没有添加完整的文件,而只是添加了一些必不可少的部分。
android {
compileSdkVersion 28
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.technothlon.techno_app"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.2-alpha02'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0-alpha02'
implementation 'com.google.firebase:firebase-core:16.0.8'
implementation 'com.google.firebase:firebase-messaging:17.3.3'
}
apply plugin: 'com.google.gms.google-services'
我的 build.gradle 文件
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'com.google.gms:google-services:4.2.0'
}
我尝试了以下解决方法:
Stack和Github以及其他一些解决方案,但没有任何帮助。我个人认为问题出在 Firebase依赖版本及其与 AndroidX 的兼容性。
错误的屏幕截图:https://ibb.co/G2sXnpx
如果有人可以在这个问题上为我提供帮助,那就太好了,因为现在超过5天我都无法解决这个问题:(。
答案 0 :(得分:0)
在您的app / build.gradle文件中,您表示要在
的默认配置中使用multidexmultiDexEnabled true
但是您没有multidex作为依赖项。在您的依赖项下添加
dependencies {
...
implementation 'com.android.support:multidex:1.0.3'
}
答案 1 :(得分:0)
由于@Filled Stacks的答案不能解决您的问题,因此问题出在AndroidX中,而Flutter应用程序中已弃用的支持库冲突。
根据Flutter文档:
AndroidX可以通过两种方式在编译时破坏Flutter应用程序:
- 该应用程序使用AndroidX插件,并且其主build.gradle文件的版本28以下具有compileSdkVersion。
- 该应用程序同时使用已弃用的代码和AndroidX代码。
https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility
长话短说: 您可以migrate使用AndroidX整个应用程序,也可以浏览所有依赖项并确保它们都基于Android支持库而不是AndroidX。
这次没有银弹,对不起。
您在this list of popular AndroidX-free libs 中可以看到,它们都已经过时了。因此,除非您有一个基于已弃用的支持库且无法替换的密钥库,否则我建议您迁移到AndroidX。