Как решить все зависимости Google Play-сервисов с Gradle? - PullRequest
0 голосов
/ 28 мая 2018

Ситуация

Сегодня, после того, как ничего не коснулся проекта, мой крикнул на меня и не собирался компилировать проект.Не удалось разрешить firebase-iid, firebase-common, play-services-analytics-impl, play-services-auth-api-phone и play-services-auth-base.Так что после выходных совсем беспорядок.

Итак, я проверил версии различных API и обновил те, которые требовали обновления, обнаружил, что Google добавил обязательную зависимость к firebase-core, добавил ее, затем обновил мой плагин google-services идаже добавил play-services-base зависимость.Я также обновил firebase-messaging до версии 17.0.0 и crashlytics до версии 2.9.3.

Но, тем не менее, сборка не компилируется с этим сообщением об ошибке:

Библиотека com.google.android.gms: база измерений play-services-запрашивается различными другими библиотеками по адресу [[15.0.2,15.0.2], [15.0.4,15.0.4]], норазрешает до 15.0.4.Отключите плагин и проверьте дерево зависимостей, используя ./gradlew: app: dependencies.

Файлы Gradle

Вот мой файл Gradle (показывает только часть зависимостей), после моих попыток исправить:

apply plugin: 'com.android.application'

...
dependencies {
    implementation project(':library')
    implementation project(':otherlibrary')
    implementation 'com.android.volley:volley:1.1.0'
    implementation('org.apache.httpcomponents:httpmime:4.3.6') {
        exclude module: 'httpclient'
    }
    implementation 'org.apache.httpcomponents:httpclient-android:4.3.5'
    implementation 'com.google.android.gms:play-services-base:15.0.1'
    implementation 'com.google.android.gms:play-services-analytics:15.0.2'
    implementation 'com.google.android.gms:play-services-location:15.0.1'
    implementation('com.google.android.gms:play-services-ads:15.0.1') {
        exclude group: 'com.android.support', module: 'customtabs'
    }
    implementation 'com.google.android.gms:play-services-identity:15.0.1'
    implementation 'com.google.android.gms:play-services-auth:15.0.1'
    implementation 'com.google.android.gms:play-services-drive:15.0.1'
    implementation 'com.google.firebase:firebase-core:16.0.0'
    implementation 'com.google.firebase:firebase-messaging:17.0.0'

    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.nineoldandroids:library:2.4.0'
    implementation 'com.daimajia.slider:library:1.1.5@aar'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:mediarouter-v7:27.1.1'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:exifinterface:27.1.1'
    implementation 'com.android.support:support-v13:27.1.1'
    // https://mvnrepository.com/artifact/com.darwinsys/hirondelle-date4j
    implementation group: 'com.darwinsys', name: 'hirondelle-date4j', version: '1.5.1'
    // For RxAndroid and RxJava
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
// Because RxAndroid releases are few and far between, it is recommended you also
// explicitly depend on RxJava's latest version for bug fixes and new features.
// (see https://github.com/ReactiveX/RxJava/releases for latest 2.x.x version)
    implementation 'io.reactivex.rxjava2:rxjava:2.1.12'

    // Crashlytics
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'

    // CSV with outputstream writer
    implementation 'com.opencsv:opencsv:4.1'

    // Gson
    implementation 'com.google.code.gson:gson:2.8.5'

    debugImplementation 'com.android.support.test:runner:1.0.2'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test:rules:1.0.2'
    androidTestImplementation 'org.hamcrest:hamcrest-library:1.3'
    androidTestImplementation 'junit:junit:4.12'
}

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

И в моем проекте Gradle содержатся следующие строки:

...
repositories {
    maven {
       url 'https://maven.google.com/'
       name 'Google'
    }
    ...
}
dependencies {
    ...
    classpath 'com.google.gms:google-services:4.0.1'
}
...

Официальное решение не работает

Я уже пытался исправить номер версиинесколько библиотек в соответствии с официальной документацией Firebase , которая более или менее совпадает с этим вопросом .
Как вы можете прочитать в официальной ссылке на документацию, по состоянию на 2 мая,В 2018 году они предложили способ решения этой проблемы, но номера рассматриваемых версий не совпадают, и я уже пробовал данное исправление (с некоторыми понижениями), но безрезультатно.

Официальная документация: Если ваше приложение зависит от com.google.firebase: firebase-core: 15.0.0, а также любой из следующих библиотек:

com.google.android.gms:play-services-analytics
com.google.android.gms:play-services-appinvite
com.google.android.gms:play-services-tagmanager
com.google.firebase:firebase-analytics
com.google.firebase:firebase-crash
com.google.firebase:firebase-dynamic-links
com.google.firebase:firebase-messaging

Вам нужно будетpdate версия последней зависимости 15.0.2.Это устраняет проблему, из-за которой сообщается версия 3.3.0 подключаемого модуля Google Services Gradle: библиотека com.google.android.gms: play-services-measure-base запрашивается различными другими библиотеками по адресу [[15.0.0,15.0.0], [15.0.2,15.0.2]], но разрешается в 15.0.2 ...

Итак, как мне разрешить эти конфликты версий, чтобы моя сборка моглаправильно скомпилировать?

Ответы [ 4 ]

0 голосов
/ 02 января 2019

Я добавил это в свой build.gradle (версия приложения), и оно заработало:

googleServices { disableVersionCheck = true }
0 голосов
/ 28 мая 2018

Итак, после дня, потерянного в этом выпуске, я обнаружил, что последняя версия play-services-analytics является , а не той, которую они опубликовали на их веб-сайте .Это 16.0.0, а не 15.0.2.

Студия Android предупредила об этом коллегу, но мое об этом не беспокоило.Итак, вот она, строка, которая меняет все:

implementation 'com.google.android.gms:play-services-analytics:16.0.0'
0 голосов
/ 05 сентября 2018

К сожалению, служба Google Play была остановлена. Эти сообщения генерируются и никогда не запускаются.

0 голосов
/ 28 мая 2018

Я попытался вернуться к старой сборке, и мне показалось, что это сработало; я обнаружил, что gradle-wrapper.properties использует более старую версию (4.5) вместо 4.6, которую я имел в новом проекте.Изменение этого параметра, а также возврат к classpath 'com.android.tools.build:gradle:3.2.0-alpha08' из альфа-15, похоже, помогли.Я думаю, что вы можете использовать альфа 15, если хотите, но чтобы быть уверенным, вы можете использовать classpath 'com.android.tools.build:gradle:3.1.2'.Наряду со всеми этими изменениями firebase-core и google-gms-services должны быть настроены на версию 16.0.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...