【问题标题】:Android: Getting Error:Execution failed for task ':app:processDebugGoogleServices' after adding a new dependencyAndroid:出现错误:添加新依赖项后任务“:app:processDebugGoogleServices”执行失败
【发布时间】:2018-08-25 19:09:02
【问题描述】:

完整的错误跟踪:

Error:Execution failed for task ':app:processDebugGoogleServices'.
> Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 11.4.2.

在我添加最后一个依赖项时发生错误:

compile 'com.google.firebase:firebase-ml-model-interpreter:16.2.0'

这是我的 gradle 依赖项:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.jakewharton:butterknife:8.6.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'
    compile 'com.facebook.android:facebook-login:4.27.0'
    compile 'com.firebaseui:firebase-ui-database:2.0.1'
    compile 'com.firebaseui:firebase-ui-storage:2.0.1'
    compile 'com.firebase:firebase-jobdispatcher:0.6.0'
    compile 'com.google.firebase:firebase-core:11.4.2'
    compile 'com.google.firebase:firebase-auth:11.4.2'
    compile 'com.google.firebase:firebase-ads:11.4.2'
    compile 'com.google.firebase:firebase-database:11.4.2'
    compile 'com.google.firebase:firebase-storage:11.4.2'
    compile 'com.google.firebase:firebase-messaging:11.4.2'
    compile 'com.android.support:design:25.4.0'
    compile 'com.android.support:appcompat-v7:25.4.0'
    compile 'com.android.support:recyclerview-v7:25.4.0'
    compile 'com.android.support:cardview-v7:25.4.0'
    compile 'com.android.support:support-v4:25.4.0'
    implementation 'com.android.support:support-v4:25.4.0'
    implementation 'com.android.support:support-vector-drawable:25.4.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    compile 'com.github.chrisbanes:PhotoView:2.1.3'
    //network
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
        transitive = true
    }
    //billing
    compile 'com.anjlab.android.iab.v3:library:1.0.44'
    //tutorial
    compile 'com.github.popalay:tutors:1.0.6'
    //rate dialog
    compile 'io.github.kobakei:ratethisapp:1.2.0'
    compile 'com.github.tozny:java-aes-crypto:1.1.0'
    compile 'com.flurry.android:analytics:8.1.0'
    compile 'com.github.ceryle:RadioRealButton:v2.1.1'
    compile 'com.github.drawers:SpinnerDatePicker:1.0.6'
/*    compile 'com.siclo.ezphotopick:library:1.0.8'
    implementation project(':EZPhotoPickerLib')*/
    compile project(path: ':EZPhotoPickerLib')

    compile "commons-io:commons-io:2.6"

    compile "com.github.hotchemi:permissionsdispatcher:3.1.0"
    annotationProcessor "com.github.hotchemi:permissionsdispatcher-processor:3.1.0"

    compile 'org.tensorflow:tensorflow-lite:+'

    compile 'com.google.firebase:firebase-ml-model-interpreter:16.2.0'

}

apply plugin: 'com.google.gms.google-services'

尝试同步库,但无论我做什么,我都会不断收到此错误。

【问题讨论】:

    标签: android tensorflow gradle android-gradle-plugin firebase-mlkit


    【解决方案1】:

    转到您的项目级别构建和替换

        classpath 'com.google.gms:google-services:3.x.x'
    

        classpath 'com.google.gms:google-services:4.0.0'
    

    并同步您的代码 因为在您的应用程序 gradle 中,您使用的 mi-modal-interpreter lastes 具有与 gsm 最新版本兼容的依赖项版本。而您使用的旧版本 google.gsm 会混淆版本冲突。

    如果您将 google.gsm 更新到 4.x.x,那么您可能必须将 google 的其他所有依赖项更新到最新版本。而且您还使用 firebase.ui:2.x.x 在将这些 UI 更新到 firebase.ui:3.x.x 时,您也需要更改代码,因为某些方法是 ui:2.x.x 也被新方法替换 refernce

    【讨论】:

    • 我试过了,问题是解释器没有 11.4.2 版本,也不是所有其他的都有 16.2.0 版本。
    • 好的,这是应用级别的 gradle 转到项目级别的 gradle 并将 gsm 版本更新为最新版本,并更新应用级别 gradle 中的所有依赖项这是一种方法,或者您应该尝试所有以前的版本fireabse-ml-model 版本通过降级一一查看,看看哪个版本适合你当前的 graddle
    • 出现此错误是因为您尝试使用我认为与 gsm 版本 4 兼容的 ml-model-interpreter 最新版本(这也是最新版本)
    • 我对我的答案进行了更新,请检查并告诉我是否有帮助?
    • 谢谢,我会检查一下并回复您。
    【解决方案2】:

    对于 Firebase 依赖项:

    1. 始终查看 SDK/插件版本的“入门”指南: https://firebase.google.com/docs/android/setup 截至 2018 年 8 月的最新 google-services 插件版本是 4.0.1

    2. 从 2018 年 5 月开始,Google Play 服务和 Firebase Android SDK 开始采用符合语义版本控制的新版本控制系统。将所有相关 SDK 升级到 15.0.0+(查看每个 API 的文档)后,您不再需要为每个 API 使用相同的版本。有关详细信息,请参阅下面的博客文章(但请忽略文章中的特定版本,因为它们不再是最新的。有关最新版本,请参阅 Firebase 文档): http://www.googblogs.com/announcing-new-sdk-versioning-in-google-play-services-and-firebase/

    此外,Firebase SDK 版本: https://firebase.google.com/support/release-notes/android

    【讨论】:

    【解决方案3】:

    参考:https://firebase.google.com/docs/ml-kit/android/use-custom-models

    作为最后一个答案更新 gradle
    再次查看官方网站文档

    使用TensorFlow Lite 模型在 Android 上通过 ML Kit 进行推理 您可以使用 ML Kit 通过 TensorFlow Lite 模型执行设备端推理。

    此 API 需要 Android SDK 级别 16 (Jelly Bean) 或更高版本。

    有关此 API 的使用示例,请参阅 GitHub 上的 ML Kit 快速入门示例,或尝试 codelab。

    开始之前 如果您尚未将 Firebase 添加到您的应用中,请按照getting started guide 中的步骤进行操作。 在您的应用级 build.gradle 文件中包含 ML Kit 的依赖项:

    dependencies {
      // ...
    
      implementation 'com.google.firebase:firebase-ml-model-interpreter:16.2.0'
    }
    

    将您要使用的 TensorFlow 模型转换为 TensorFlow Lite (tflite) 格式。见TOCO: TensorFlow Lite Optimizing Converter.

    托管或捆绑您的模型 在您可以在您的应用中使用 TensorFlow Lite 模型进行推理之前,您必须使该模型可用于 ML Kit。 ML Kit 可以使用通过 Firebase 远程托管、本地存储在设备上的 TensorFlow Lite 模型,或两者兼而有之。

    通过在 Firebase 上托管模型并在本地存储模型,您可以确保在可用时使用模型的最新版本,但当 Firebase 托管的模型不可用时,您应用的机器学习功能仍然有效可用。

    模型安全 无论您如何让 TensorFlow Lite 模型对 ML Kit 可用,ML Kit 都会以标准序列化 protobuf 格式将它们存储在本地存储中。

    理论上,这意味着任何人都可以复制您的模型。然而,在实践中,大多数模型都是特定于应用程序的,并且被优化混淆了,其风险类似于竞争对手反汇编和重用代码的风险。不过,在您的应用中使用自定义模型之前,您应该意识到这种风险。

    在 Android API 级别 21 (Lollipop) 及更高版本上,模型已下载 给directory that is excluded from automatic backup.

    在 Android API 级别 20 及更早版本上,模型会下载到应用专用内部存储中名为 com.google.firebase.ml.custom.models 的目录中。如果您使用 BackupAgent 启用了文件备份,则可以选择排除此目录。

    更多详情请查看https://firebase.google.com/docs/ml-kit/android/use-custom-models

    【讨论】:

    • 感谢您的努力,但复制粘贴文档的意义何在?它绝不会回答我最初的问题。
    猜你喜欢
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    相关资源
    最近更新 更多