【问题标题】:':app:transformDexArchiveWithExternalLibsDexMergerForDebug' error after adding firebase auth plugin in flutter':app:transformDexArchiveWithExternalLibsDexMergerForDebug' 在颤振中添加 firebase auth 插件后出错
【发布时间】:2019-07-09 01:54:44
【问题描述】:

安装firebase_auth 插件并更新其他firebase 插件版本后,我遇到了一些错误。我尝试了一些解决方案,包括降级 firebase auth 插件版本并在我的 gradle 文件中添加一些行,但它仍然无法正常工作。

pubspec.yaml

 dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^0.4.3
  json_annotation: ^1.2.0
  geolocator: ^2.1.0
  auto_size_text: ^0.2.1
  firebase_storage: ^2.0.1
  firebase_core: ^0.3.0+1
  firebase_auth: ^0.6.2+1
  firebase_messaging: ^3.0.1
  flutter_advanced_networkimage: any
  image_picker: ^0.4.10
  url_launcher: ^4.0.1
  multi_image_picker: ^2.2.30
  intl: ^0.15.7
  path_provider: ^0.4.1
  sqflite: ^1.0.0
  rxdart: ^0.20.0

gradle.properties

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true

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 ****************
        minSdkVersion 21
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation 'com.google.firebase:firebase-core:16.0.0' //added this as per comment below

    implementation 'com.google.firebase:firebase-auth:16.0.1'//added this as per comment below

    implementation 'com.google.firebase:firebase-messaging:17.0.0'//added this as per comment below

    implementation 'com.android.support:multidex:1.0.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

}

apply plugin: 'com.google.gms.google-service

错误

    Note: C:\src\flutter\.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.6.2+1\android\src\main\java\io\flutter\plugins\firebaseauth\FirebaseAuthPlugin.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Note: C:\src\flutter\.pub-cache\hosted\pub.dartlang.org\firebase_core-0.3.0+1\android\src\main\java\io\flutter\plugins\firebase\core\FirebaseCorePlugin.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    Note: C:\src\flutter\.pub-cache\hosted\pub.dartlang.org\firebase_messaging-3.0.1\android\src\main\java\io\flutter\plugins\firebasemessaging\FlutterFirebaseInstanceIDService.java uses or overrides a deprecated API.
         *********************************************************
D8: Program type already present: android.support.v4.os.ResultReceiver$1

....message to visit a link....

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
    > com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: some directory path ending with.jar,

【问题讨论】:

    标签: android gradle flutter


    【解决方案1】:

    一天前我遇到了这样的问题。这可能是您的依赖项中支持库和 androidx 之间的冲突。看看this 问题。在我的情况下,我解决了这个问题,在 pubspec 中手动从我的项目中删除所有依赖项,并使用已经使用 androidx 的新更新版本一一添加并迁移我的项目。好吧,我尝试了 IDE androidX 迁移工具,但没有成功。最后要注意第三方库,其中一些需要时间来更新并产生这样的问题。

    【讨论】:

    • 我也遇到了那个问题线程,最终我不得不按照我在答案中发布的链接中的步骤执行您刚才提到的操作。它似乎解决了我的错误,希望没有其他任何弹出。
    • 我花了一整天的时间来解决这个问题,希望我们现在得到解决方案。
    【解决方案2】:

    我最终通过以下方式修复了我的错误:https://github.com/flutter/flutter/issues/27128#issuecomment-457918930

    以下是一些其他说明:

    1. 更新 gradle-wrapper.properties 中的 distributionUrl 时,我使用了 4.10.2。我猜您的版本可能会有所不同,具体取决于您执行此操作的时间。
    2. 如果找不到“使用 Gradle 文件同步项目”命令,请按照此Not able to sync dependency in build.gradle in flutter

    【讨论】:

      【解决方案3】:

      我有同样的问题,我更新如下

      compile 'com.google.firebase:firebase-core:11.0.4'
      compile 'com.google.firebase:firebase-auth:11.0.4'
      compile 'com.google.firebase:firebase-messaging:11.0.4'
      

      implementation 'com.google.firebase:firebase-core:16.0.0'
      implementation 'com.google.firebase:firebase-auth:16.0.1'
      implementation 'com.google.firebase:firebase-messaging:17.0.0'
      

      检查最新版本并进行相应更新 https://firebase.google.com/support/release-notes/android

      【讨论】:

      • 所以我应该把它放在 app/build.gradle 中?
      • 我仍然遇到错误,我用 app/build.grade 文件中的代码行更新了答案。
      【解决方案4】:

      将您的整个 Firebase 插件升级为新插件

      【讨论】:

      • 不知道升级如新是什么意思,能否详细说明?
      • 更新到与firebase相关的cloud_firestore、firebase_auth等新版本,我解决了这个
      • 我更新到最新的插件版本还是报错
      猜你喜欢
      • 2020-11-21
      • 2019-10-06
      • 2019-10-29
      • 2020-05-12
      • 2021-03-24
      • 2021-03-26
      • 2022-01-14
      • 1970-01-01
      • 2020-04-01
      相关资源
      最近更新 更多