我一直受困于Gradle无法构建(可以在iOS上正常工作)。我苦苦挣扎,因为Gradle犯了一个通用错误,今天终于得到了:
失败:构建失败,并出现异常。
出了什么问题:在执行期间无法捕获任务':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:firebase-messaging@18.0。 0
-项目“应用程序”取决于项目“ firebase_core”,该项目取决于com.google.firebase:firebase-core@16.0.9 –项目“应用程序”取决于 项目'firebase_analytics'取决于 com.google.firebase:firebase-analytics@16.5。 0-项目“ app” 取决于项目'firebase_remote_config',取决于 com.google.firebase:firebase-config@16.4 .1-项目'app' 取决于com.google.firebase:firebase-core@16.0.9有关扩展调试信息,请从命令行执行Gradle 使用./gradlew --info:app:assembleDebug来查看dep持久性 工件的路径。此错误消息来自 google-services Gradle插件,在https://
报告问题 github.com/google/play-services-plugins并通过添加禁用 “ googleServices {disableVersionCheck = false}”添加到您的b
uild.gradle文件。尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的见解。
- 获得更多帮助
这是在我从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似乎并没有保持一致的版本号,并且通过取出版本号,我认为它至少会采用理论上可行的插件的最新版本。那么,我该如何解决呢?
答案 0 :(得分: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:firebase-core@16.0.9
com.google.firebase:firebase-analytics@16.5.0
com.google.firebase:firebase-config@16.4.1
将来,如果您遇到版本问题,请检查特定的GitHub软件包问题,以查看您所使用的版本当前是否存在任何问题。这样可以节省您很多时间。
我不建议从pubsepc.yaml中删除版本号,但如果输入
firebase_messaging: any
它将为您提供兼容版本。
答案 1 :(得分:0)
您遇到的错误不一定来自pubspec.yaml中列出的软件包。它指的是对build.gradle的依赖。 Google的版本号没有问题。软件包的版本(即您在pubspec.yaml上列出的版本)与对app / build.gradle的依赖项之间存在差异。重新考虑您使用的软件包数量是明智的选择,因为每个软件包都具有依赖性,并且您可能最终陷入多个软件包冲突的棘手情况。另外,您最终得到了一个for肿的解决方案,以实现最小的功能。 删除版本号将无济于事,因为某些软件包不兼容。我建议您从所需的软件包开始,即Firebase,从经验来看没有问题,然后在必要时逐步添加。