Flutter中的cloud_firestore和firebase_auth兼容性问题

时间:2018-08-14 14:28:21

标签: android firebase firebase-authentication google-cloud-firestore flutter

我正在开发Flutter应用。当我分别使用cloud_firestorefirebase_auth软件包时,我的应用程序可以正常工作。但是,当我将它们一起包含在pubspecs.yaml文件中时,构建将失败并显示以下消息:

  

注意:/home/saber/Code/mobile_dev/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.4/android/src/main/java/io/flutter/ plugins / firebase / cloudfirestore / CloudFirestorePlugin.java使用未经检查或不安全的操作。   注意:使用-Xlint:unchecked重新编译以获取详细信息。   注意:/home/saber/Code/mobile_dev/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_auth-0.5.18/android/src/main/java/io/flutter/plugins/firebaseauth/FirebaseAuthPlugin。 java使用或覆盖已弃用的API。   注意:有关详细信息,请使用-Xlint:deprecation重新编译。   注意:/home/saber/Code/mobile_dev/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_auth-0.5.18/android/src/main/java/io/flutter/plugins/firebaseauth/FirebaseAuthPlugin。 Java使用未经检查或不安全的操作。   注意:使用-Xlint:unchecked重新编译以获取详细信息。   注意:/home/saber/Code/mobile_dev/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.2.5/android/src/main/java/io/flutter/plugins/firebase/core/ FirebaseCorePlugin.java使用未经检查或不安全的操作。   注意:使用-Xlint:进行重新编译:不检查详细信息。

失败:构建失败,并出现异常。

  • 出了什么问题: 任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败。
      

    java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex

这是我的pubspec.yaml文件中的依赖关系:

dependencies:
   flutter:
     sdk: flutter
   firebase_auth: ^0.5.18
   cloud_firestore: ^0.7.4

我检查了软件包的版本,它们似乎都是最新版本。

对于解决此问题的任何帮助,将不胜感激!

这可能与this问题有关,但我不确定。

6 个答案:

答案 0 :(得分:2)

更新您的Gradle版本。我面临着同样的问题,我已经通过以下步骤解决了这个问题。

步骤1: 在app / build.gradle

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

  defaultConfig {
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        ****multiDexEnabled true****

    }

步骤2: 更改android / build.gradle中的gradle版本依赖项

classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'com.google.gms:google-services:3.2.0' 

步骤3:  pubspec.ymal中最新版本的firebase_auth和cloud_firestore

 cloud_firestore: ^0.12.5+1
  firebase_auth: ^0.11.1+6
  google_sign_in: ^4.0.2

答案 1 :(得分:0)

您需要遵循此setup:

打开android / app / build.gradle并在文件底部添加:

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

,然后在android / build.gradle中添加以下内容:

buildscript {
  repositories {
    // ,,,
  }
  dependencies {
    // ...
    classpath 'com.google.gms:google-services:3.2.1' 
   }
 }

答案 2 :(得分:0)

在android / build.gradle中仅使用此依赖项,并删除所有其他依赖项

classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'com.google.gms:google-services:3.2.1'

您必须在pubspec.yaml中使用此版本

firebase_auth: 0.5.11
google_sign_in: 3.0.4
cloud_firestore: 0.7.3  

因为这些版本已更新gradle工具。

答案 3 :(得分:0)

对我来说,只需在应用程序build.gradle中将minSDKVersion更改为23。

答案 4 :(得分:0)

以下更新应该可以解决此问题:

更新 android / gradle / wrapper / gradle-wrapper.properties

/etc/apache2/mods-available/passenger.conf

并更新依赖项和版本

android / build.gradle

distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip

android / build.gradle 尚未

dependencies {
         classpath 'com.android.tools.build:gradle:3.5.3'
         classpath 'com.google.gms:google-services:4.3.2'

pubspec.yaml

buildscript {
    ext.kotlin_version = '1.3.61'

答案 5 :(得分:0)

  1. 在 app/build.gradle 中升级你的 gradle

  2. 运行 flutter pub upgrade 以获取最新的依赖项!