使用firebase时颤动的Gradle问题

Posted

技术标签:

【中文标题】使用firebase时颤动的Gradle问题【英文标题】:Gradle issue in flutter when using firebase 【发布时间】:2019-03-16 07:10:58 【问题描述】:

在我的颤振应用程序中,我将 firebase_auth 用于 google_sign_in,它工作正常。但是当我将 cloud_firestore: 添加到 pubspec.yaml 然后获取依赖项然后重新启动我的应用程序时,它会向我显示如下错误:

FAILURE: Build failed with an exception.

* What went wrong:
The library com.google.android.gms:play-services-base is being requested by various other libraries at [[15.0.1,15.0.1]], but resolves to 16.0.1. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s
Finished with error: Gradle build failed: 1

【问题讨论】:

这些链接应该提供解决方法的建议youtube.com/watch?v=bROui4ID9_Q&feature=youtu.begithub.com/flutter/flutter/issues/18579#issuecomment-398484148github.com/flutter/flutter/issues/19868github.com/flutter/flutter/issues/19983github.com/flutter/flutter/issues/20486我认为有一些正在进行的插件更新以解决这些版本冲突。 我尝试了所有方法,但对我没有任何效果! 类似问题:***.com/questions/53064229/… 【参考方案1】:

这个link 为我解决了这个问题。

首先我将 pubspec.yaml 中的依赖项设置为

dependencies:
  flutter:
    sdk: flutter
  cloud_firestore: ^0.8.2 

并在我的 IDE 终端中运行 flutter packages get

我还必须更改最低目标 SDK 版本:

    打开android/app/build.gradle,然后找到上面写着的那一行 minSdkVersion 16。 将该行更改为minSdkVersion 21。 保存文件。

另外,我必须打开android/app/build.gradle,然后将以下行添加到文件的最后一行: apply plugin: 'com.google.gms.google-services'

接下来,我必须打开android/build.gradle,然后在 buildscript 标签内,添加一个新的依赖项:

buildscript 
   repositories 
       // ...
   

   dependencies 
       // ...
       classpath 'com.google.gms:google-services:3.2.1'   // new
   

在此之后,我的应用程序终于在 android 模拟器上运行了。

如果您遇到困难,link 有更完整的演练。

【讨论】:

【参考方案2】:

我在我的 android/build.gradle 文件中使用了这个依赖项

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

并在 pubspec.yaml 中将此版本用于 firebase 和 google

firebase_auth: 0.5.11
google_sign_in: 3.0.4
cloud_firestore: 0.7.3  

它运行良好,因为在这些版本中,gradle 工具已更新为匹配 Android Studio 3.1.2。

其他 firebase 工作版本:

firebase_admob: 0.5.5
firebase_analytic: 1.0.1
firebase_core: 0.2.4 
firebase_database: 1.0.1 
firebase_dynamic_links: 0.02
firebase_messaging: 1.0.2
firebase_performance: 0.0.3
firebase_remote_config: 0.0.4
firebase_storage: 0.3.7

【讨论】:

如果 cloud_firestore 版本高于 0.7.3 ios Build ok 但 Android Build 失败,则不起作用。 ***.com/questions/53064229/… @LiveRock,我知道这就是我提供这些工作版本的原因。此版本有效,因为 gradle 工具已在此版本中更新。参考参考changelog。 我知道您提供的组合有效。但是由于错误修复等,我们需要继续使用更高版本的插件。这将是一个更持久的解决方案。有什么建议吗? 所有这些插件仍处于测试阶段,所以等待初始版本是我能给出的唯一建议!

以上是关于使用firebase时颤动的Gradle问题的主要内容,如果未能解决你的问题,请参考以下文章

颤动的firebase错误“失败:构建失败并出现异常”

颤动的firebase登录问题

我在颤动时无法捕捉到 Firebase Auth 的异常

颤动中的Firebase列表

如何:在注册/创建时设置 Firebase 用户的个人资料信息? (颤动网络)

找不到gradle颤动