每当我尝试运行我的Flutter应用程序时,都会执行"app:transformClassesWithMultidexlistForDebug"任务。

3
每当我尝试运行我的应用程序时,它总是失败并显示以下错误:
  • 出现了什么问题: 执行任务“:app:transformClassesWithMultidexlistForDebug”失败。 com.android.build.api.transform.TransformException: 生成主dex列表时出错。
我已经尝试解决这个问题几天了,但没有一个解决方案有效。
我已经尝试降级Firebase依赖项的版本,更改最低SDK版本以及许多其他可在互联网上找到的解决方法。可能是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'

My build.gradle file


    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:4.2.0'
    }

我尝试了以下解决方法:
  1. https://github.com/flutter/flutter/issues/23929
  2. https://github.com/flutter/flutter/issues/23131
我还从Stack和Github上找到了其他一些解决方案,但都没有帮助我解决问题。个人认为问题在于Firebase依赖版本及其与AndroidX的兼容性。错误截图:https://ibb.co/G2sXnpx。如果有人能帮我解决这个问题就太好了,因为我已经为此烦恼了五天 :( 。

将minSdkVersion更改为19或21进行检查,我遇到了类似的问题,这对我起作用。 - undefined
2个回答

0
由于@Filled Stacks的答案没有解决您的问题,问题出在AndroidX和已弃用的支持库在您的Flutter应用中发生了冲突。
根据Flutter文档:

AndroidX可能会以两种方式在编译时破坏Flutter应用:

  1. 应用使用了一个AndroidX插件,而其主要的build.gradle文件的compileSdkVersion低于28。
  2. 应用同时使用了已弃用的代码和AndroidX代码。

https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility

简而言之: 要么将整个应用迁移到AndroidX,要么检查所有依赖项,确保它们都基于Android支持库而不是AndroidX。

这次没有银弹,抱歉。

如你所见,在此列表中流行的无AndroidX库中,它们都相当过时。因此,我建议除非有基于已弃用的支持库且无法替换的关键库,否则迁移到AndroidX。


-2
在你的 app/build.gradle 文件中,你正在指示要在默认配置中使用 multidex。
multiDexEnabled true

但是你没有将multidex作为一个依赖项。在你的依赖项下添加它。
dependencies {
  ...
  implementation 'com.android.support:multidex:1.0.3'
}

很不幸,这个也没有起作用。它给出了与之前相同的错误。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接