如何知道在Flutter应用中使用哪个版本的Google Firebase插件?

问题描述 投票:6回答:1

我一直受困于Gradle无法构建(可以在iOS上正常工作)。我苦苦挣扎,因为Gradle犯了一个通用错误,今天终于得到了:

FAILURE:构建因异常而失败。

  • 出了什么问题:在执行期间无法捕获任务':app:preDebugBuild'属性'compileManifests'的输入文件的指纹最新检查。

    在项目“应用”中,已解析的Google Play服务库依赖项依赖于另一个版本(例如“ [18.0。0]”,但不是)被解析为该版本。图书馆展示的行为将不明。

    依赖项失败:com.google.firebase:firebase-messaging:18.0.0->com.google.firebase:firebase-iid @ [18.0.0],但使用fire base-iid版本是17.1.2。

    以下依赖项是直接的项目依赖项或具有传递依赖性,从而导致与问题。 -项目'app'取决于项目'firebase_messaging'取决于com.google.firebase:[email protected]。 0-项目“应用程序”取决于项目“ firebase_core”,该项目取决于com.google.firebase:[email protected] –项目“应用程序”取决于项目'firebase_analytics'取决于com.google.firebase:[email protected]。 0-项目“ app”取决于项目'firebase_remote_config',取决于com.google.firebase:[email protected] .1-项目'app'取决于com.google.firebase:[email protected]

    有关扩展的调试信息,请从命令行执行Gradle使用./gradlew --info:app:assembleDebug来查看dep持久性工件的路径。此错误消息来自google-services Gradle插件,在https://上报告问题github.com/google/play-services-plugins并通过添加禁用“ googleServices {disableVersionCheck = false}”uild.gradle文件。

  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的见解。

  • https://help.gradle.org获取更多帮助

这是在我从pubspec中取出版本号以查看是否有帮助之后。我不了解Google的版本编号,也不确定应该安装哪个版本的插件,因为它过去曾引起冲突:

dependencies:
 flutter:
 sdk: flutter
 http:
 cached_network_image: 
 flutter_cache_manager:
 carousel_pro: 
 cloud_firestore:
 firebase_core:
 firebase_remote_config:
 dynamic_theme: 
 flutter_signin_button:
 shared_preferences:
 share:
 flutter_search_bar:
 google_sign_in:
 #flutter_facebook_login:
 flutter_html: 
 requests: 
 webview_flutter:
 flutter_webview_plugin:
 firebase_analytics:
 flutter_app_badger:  #for launcher badge icon (notifications)
 uuid:
 font_awesome_flutter: 
 device_info:
 carousel_slider: 
 flutter_spinkit: 
 flutter_typeahead:
 firebase_messaging:
 html_unescape:
 flutter_masked_text: 
 configurable_expansion_tile: 
 stripe_payment:
 square_in_app_payments:

Google似乎并没有保持一致的版本号,并且通过取出版本号,我认为它至少会采用理论上应该可以使用的插件的最新版本。那么,我该如何解决呢?

firebase gradle flutter flutter-dependencies
1个回答
0
投票

您应该先将版本号放回此处。

这是firebase / play服务版本不匹配的问题,因此您可以确定pubspec.yaml中的其他插件都很好。

失败的依赖关系是firebase消息传递。

用很多字告诉你

com.google.firebase:firebase-messaging:18.0.0 package depends on com.google.firebase:firebase-iid@[18.0.0]

但只找到17.1.2。

您需要

com.google.firebase:[email protected]
com.google.firebase:[email protected]
com.google.firebase:[email protected]

以后,如果您遇到版本问题,请检查特定的软件包GitHub问题,以查看您所使用的版本当前是否有问题。这样可以节省您很多时间。

我不建议从pubsepc.yaml中删除版本号,但是如果您键入

firebase_messaging: any

它将为您提供兼容的版本。

© www.soinside.com 2019 - 2024. All rights reserved.