我正在开发Flutter应用。当我分别使用cloud_firestore
和firebase_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:进行重新编译:不检查详细信息。
失败:构建失败,并出现异常。
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问题有关,但我不确定。
答案 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)
在 app/build.gradle 中升级你的 gradle
运行 flutter pub upgrade 以获取最新的依赖项!