Android: получение ошибки: не удалось выполнить задачу «: app: processDebugGoogleServices» после добавления новой зависимости

Полная трассировка ошибки:

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'

Вот мои зависимости градации:

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'

Пытался синхронизировать библиотеки, но я постоянно получаю эту ошибку, независимо от того, что я делаю.


person Roman Rozenshtein    schedule 25.08.2018    source источник


Ответы (3)


Перейдите к сборке уровня проекта и замените

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

с

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

и синхронизируйте свой код, потому что в вашем приложении вы используете последние версии mi-modal-interpreter, которые имеют версии зависимостей, совместимые с последней версией gsm. Принимая во внимание, что вы используете старую версию google.gsm, которая сбивает с толку конфликт версий.

если вы обновите google.gsm до 4.x.x, возможно, вам придется обновить все остальные зависимости Google до последних версий. И вы также используете firebase.ui:2.x.x. При обновлении этого пользовательского интерфейса до firebase.ui:3.x.x вам также нужно изменить свой код, потому что некоторые из методов ui:2.x.x также заменяются новыми методами ссылка

person Faiizii Awan    schedule 25.08.2018
comment
Я пробовал это, проблема в том, что интерпретатор не имеет версии 11.4.2, а не все остальные имеют версию 16.2.0. - person Roman Rozenshtein; 25.08.2018
comment
хорошо, это на уровне приложения, перейдите на уровень проекта и обновите версию gsm до последней версии, а также обновите все зависимости на уровне приложения, это один из способов, или вы должны попробовать все предыдущие версии fireabse-ml-model version one по одному, понизив версию, и посмотрите, какая версия подходит для вашего текущего граддла - person Faiizii Awan; 25.08.2018
comment
эта ошибка возникает из-за того, что вы пытаетесь использовать последнюю версию ml-model-interpreter, которая, я думаю, совместима с gsm версии 4 (которая тоже является последней версией) - person Faiizii Awan; 25.08.2018
comment
я обновил свой ответ, пожалуйста, проверьте и дайте мне знать, если это поможет? - person Faiizii Awan; 25.08.2018
comment
Спасибо, я проверю это и вернусь к вам. - person Roman Rozenshtein; 25.08.2018
comment
В чем хитрость, так это в том, чтобы обновить службы gms до последней версии (4.0.1) и обновить все гугл и файрбазы, включая библиотеки интерпретаторов до последней версии. Обновите свой ответ, и я приму его, спасибо за вашу помощь! - person Roman Rozenshtein; 26.08.2018

Для зависимостей Firebase:

  1. Всегда проверяйте руководство «Начало работы» для версий SDK/плагина: https://firebase.google.com/docs/android/setup Последняя версия подключаемого модуля google-services по состоянию на август 2018 г. — 4.0.1.

  2. С мая 2018 года сервисы Google Play и Android SDK Firebase начали внедрять новую систему управления версиями, соответствующую семантическому управлению версиями. После обновления всех соответствующих 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

person Isabella Chen    schedule 27.08.2018
comment
Спасибо, я буду следовать этим рекомендациям. - person Roman Rozenshtein; 28.08.2018
comment
Еще раз спасибо! Кажется, вы профессионал в этой области, если у вас будет минутка, чтобы взглянуть на другой мой вопрос, было бы здорово: stackoverflow.com/questions/52121533/ - person Roman Rozenshtein; 31.08.2018

Ссылка: https://firebase.google.com/docs/ml-kit/android/use-custom-models

В качестве последнего ответа обновите gradle
еще раз проверьте документацию официального сайта

Используйте модель TensorFlow Lite для вывода с помощью ML Kit на Android. Вы можете использовать ML Kit для выполнения вывод на устройстве с помощью модели TensorFlow Lite.

Для этого API требуется Android SDK уровня 16 (Jelly Bean) или новее.

См. образец быстрого запуска ML Kit на GitHub для примера использования этого API или попробуйте лабораторию кода.

Прежде чем начать Если вы еще не добавили Firebase в свое приложение, сделайте это, выполнив действия, описанные в руководство по началу работы. Включите зависимости для ML Kit в файл build.gradle на уровне приложения:

dependencies {
  // ...

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

Преобразуйте модель TensorFlow, которую вы хотите использовать, в формат TensorFlow Lite (tflite). См. раздел TOCO: оптимизирующий преобразователь TensorFlow Lite.

Разместите или свяжите свою модель. Прежде чем вы сможете использовать модель TensorFlow Lite для логического вывода в своем приложении, вы должны сделать модель доступной для ML Kit. ML Kit может использовать модели TensorFlow Lite, размещенные удаленно с помощью Firebase, сохраненные локально на устройстве или и то, и другое.

Размещая модель в Firebase и сохраняя модель локально, вы можете гарантировать, что будет использоваться самая последняя версия модели, когда она будет доступна, но функции машинного обучения вашего приложения по-прежнему будут работать, когда модель, размещенная в Firebase, недоступна.

Безопасность модели Независимо от того, как вы делаете свои модели TensorFlow Lite доступными для ML Kit, ML Kit сохраняет их в стандартном сериализованном формате protobuf в локальном хранилище.

Теоретически это означает, что любой может скопировать вашу модель. Однако на практике большинство моделей настолько зависят от приложения и запутаны оптимизацией, что риск аналогичен риску дизассемблирования и повторного использования вашего кода конкурентами. Тем не менее, вы должны знать об этом риске, прежде чем использовать пользовательскую модель в своем приложении.

В Android API уровня 21 (Lollipop) и новее модель загружается в каталог, исключенный из автоматического резервного копирования.

В Android API уровня 20 и старше модель загружается в каталог с именем com.google.firebase.ml.custom.models во внутренней памяти приложения. Если вы включили резервное копирование файлов с помощью BackupAgent, вы можете исключить этот каталог.

Для получения дополнительной информации посетите https://firebase.google.com/docs/ml-kit/android/use-custom-models

person Ashvin solanki    schedule 27.08.2018
comment
Спасибо за усилия, но какой смысл копировать документацию? Это никоим образом не отвечает на мой первоначальный вопрос. - person Roman Rozenshtein; 28.08.2018