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

时间:2019-05-13 06:53:38

标签: android firebase dart flutter androidx

每当我尝试运行我的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'
    }

我尝试了以下解决方法:

  1. https://github.com/flutter/flutter/issues/23929
  2. https://github.com/flutter/flutter/issues/23131

Stack和Github以及其他一些解决方案,但没有任何帮助。我个人认为问题出在 Firebase依赖版本及其与 AndroidX 的兼容性。

错误的屏幕截图:https://ibb.co/G2sXnpx

如果有人可以在这个问题上为我提供帮助,那就太好了,因为现在超过5天我都无法解决这个问题:(。

2 个答案:

答案 0 :(得分:0)

在您的app / build.gradle文件中,您表示要在

的默认配置中使用multidex
multiDexEnabled true

但是您没有multidex作为依赖项。在您的依赖项下添加

dependencies {
  ...
  implementation 'com.android.support:multidex:1.0.3'
}

答案 1 :(得分:0)

由于@Filled Stacks的答案不能解决您的问题,因此问题出在AndroidX中,而Flutter应用程序中已弃用的支持库冲突。

根据Flutter文档:

  

AndroidX可以通过两种方式在编译时破坏Flutter应用程序:

     
      
  1. 该应用程序使用AndroidX插件,并且其主build.gradle文件的版本28以下具有compileSdkVersion。
  2.   
  3. 该应用程序同时使用已弃用的代码和AndroidX代码。
  4.   

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

长话短说: 您可以migrate使用AndroidX整个应用程序,也可以浏览所有依赖项并确保它们都基于Android支持库而不是AndroidX。

这次没有银弹,对不起。

您在this list of popular AndroidX-free libs 中可以看到,它们都已经过时了。因此,除非您有一个基于已弃用的支持库且无法替换的密钥库,否则我建议您迁移到AndroidX。