问题描述
对此感到非常沮丧-所以我在Flutter中有一个项目,其中涉及以下方面:
firebase_admob: ^0.10.2
firebase_ml_vision: ^0.9.9
虽然我只有firebase_ml_vision
一切都能顺利编译,但是添加admob改变了这一点,现在我得到的错误是:
FAILURE: Build Failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[19.0.
2]",but isn't being resolved to that version. Behavior exhibited by the library will be unkNown.
Dependency failing: com.google.android.gms:play-services-vision:20.0.0 -> com.google.android.gms:play-services-vision-co
mmon@[19.0.2],but play-services-vision-common version was 19.1.0.
The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
ifact with the issue.
-- Project 'app' depends onto com.google.firebase:firebase-ml-vision@{strictly 24.1.0}
-- Project 'app' depends on project 'firebase_ml_vision' which depends onto com.google.firebase:firebase-ml-vision@20.0.
0
-- Project 'app' depends onto com.google.android.gms:play-services-vision-common@{strictly 19.1.0}
-- Project 'app' depends onto com.google.android.gms:play-services-vision-image-label@{strictly 18.0.4}
-- Project 'app' depends onto com.google.android.gms:play-services-vision@{strictly 20.0.0}
For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep
endency paths to the artifact. This error message came from the google-services Gradle plugin,report issues at https://
github.com/google/play-services-plugins and disable by adding "googleServices { disabLeversionCheck = true }" to your bu
ild.gradle file.
到目前为止,我已经尝试了所有我能想到的东西,包括杂耍版本等。
有什么办法可以解决这个问题?
更新
经过更多实验后,我在build.gradle中添加了googleServices.disabLeversionCheck = true
,因此,显然,除了许多弃用警告(Hello Firebase)之外,这是真正的问题:
FAILURE: Build Failed with an exception.
* What went wrong:
Execution Failed for task ':app:checkDebugDuplicateClasses'.
> 1 exception was raised by workers:
java.lang.RuntimeException: Duplicate class com.google.android.gms.internal.vision.zze found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzf found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzg found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzh found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzi found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzv found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzw found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.
虽然仍然没有解决办法。
更新2
在寻找解决方法时,我发现了解决“已知问题”的提示:https://firebase.google.com/support/release-notes/android#mlkit-self-serve-fixes
所以我尝试实现它,很明显的地方是firebase_ml_vision库的build.gradle文件(我不想在github上创建fork,所以只是出于测试目的,在驱动器上编辑了该文件),一行,并从上面链接的“解决方案”中添加了另外两行:
api 'com.google.firebase:firebase-ml-vision:24.1.0'
implementation 'com.google.android.gms:play-services-vision:20.1.1'
implementation 'com.google.android.gms:play-services-vision-common:19.1.1'
原始行包含firebase-ml-vision:20.0.0
编译再次失败,但是,我没有放弃,只走了一步,只是尝试使这项工作变得可行,并且出于任何原因决定尝试在项目的apply plugin: 'com.google.gms.google-services'
中注释掉android/app/build.gradle
行文件。
进行此更改后,项目最终得以编译,但是,当然,禁用它会导致其他问题,例如应用程序未初始化Firebase插件,因此最终仍然是一个失败。搜索继续...
更新3
这是第三次的魅力-我决定再摆弄一点,然后再次将googleServices.disabLeversionCheck = true
添加到我的gradle文件中。有效。项目会编译,Firebase初始化可以正常进行,甚至admob标语都会显示,尽管每次刷新都会产生错误。叹。这几乎不是解决方案,任何人决定何时将此类库(带有此类混乱的“自助式”修复程序)推入生产环境。
解决方法
我在Firebase库中遇到了同样的问题,您应该可以将any
放在库的版本旁边,如下所示:
firebase_admob: any
firebase_ml_vision: any
然后运行flutter pub get
然后检查您的pubspec.lock
文件并检查库的版本,然后将其填充到pubspec.yaml
文件中。
那您的矛盾就应该消失了。
让我知道我是否误解了您的问题,或者您需要进一步解释!