Ошибка Gradle после обновления до AndoidX последней версии Android Gradle Plugin - PullRequest
0 голосов
/ 12 февраля 2019

После обновления до последней версии AndroidX libs & Android Gradle Plugin при запуске lint в моем проекте сборка lint не удалась.

Все началось с последнего плагина Android Gradle, который жаловался на то, что тип программы уже присутствует: com.google.common.util.concurrent.ListenableFuture при создании моего проекта

Ниже приведены ошибки:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:lint'.
> Could not resolve all artifacts for configuration ':app:debugAndroidTestRuntimeClasspath'.
   > Could not resolve com.google.guava:guava:23.6-android.
     Required by:
         project :app
      > Cannot find a version of 'com.google.guava:guava' that satisfies the version constraints: 
           Dependency path 'C3 Mobile Code Base:app:unspecified' --> 'androidx.test.ext:truth:1.1.0' --> 'com.google.guava:guava:26.0-android'
           Dependency path 'C3 Mobile Code Base:app:unspecified' --> 'com.google.truth:truth:0.42' --> 'com.google.guava:guava:25.1-android'
           Dependency path 'C3 Mobile Code Base:app:unspecified' --> 'androidx.room:room-guava:2.1.0-alpha03' --> 'com.google.guava:guava:23.6-android'
           Dependency path 'C3 Mobile Code Base:app:unspecified' --> 'com.google.api-client:google-api-client:1.25.0' --> 'com.google.guava:guava:20.0'
           Dependency path 'C3 Mobile Code Base:app:unspecified' --> 'androidx.test.ext:truth:1.1.0' --> 'com.google.truth:truth:0.42' --> 'com.google.guava:guava:25.1-android'
           Constraint path 'C3 Mobile Code Base:app:unspecified' --> 'com.google.guava:guava' strictly '23.6-android' because of the following reason: debugRuntimeClasspath uses version 23.6-android
           Constraint path 'C3 Mobile Code Base:app:unspecified' --> 'com.google.guava:guava' strictly '23.6-android' because of the following reason: debugRuntimeClasspath uses version 23.6-android
           Constraint path 'C3 Mobile Code Base:app:unspecified' --> 'com.google.guava:guava' strictly '23.6-android' because of the following reason: debugRuntimeClasspath uses version 23.6-android
           Constraint path 'C3 Mobile Code Base:app:unspecified' --> 'com.google.guava:guava' strictly '23.6-android' because of the following reason: debugRuntimeClasspath uses version 23.6-android

   > Could not resolve org.checkerframework:checker-compat-qual:2.0.0.
     Required by:
         project :app
      > Cannot find a version of 'org.checkerframework:checker-compat-qual' that satisfies the version constraints: 
           Dependency path 'C3 Mobile Code Base:app:unspecified' --> 'com.google.truth:truth:0.42' --> 'org.checkerframework:checker-compat-qual:2.5.3'
           Dependency path 'C3 Mobile Code Base:app:unspecified' --> 'androidx.test.ext:truth:1.1.0' --> 'com.google.guava:guava:26.0-android' --> 'org.checkerframework:checker-compat-qual:2.5.2'
           Dependency path 'C3 Mobile Code Base:app:unspecified' --> 'androidx.test.ext:truth:1.1.0' --> 'com.google.truth:truth:0.42' --> 'org.checkerframework:checker-compat-qual:2.5.3'
           Constraint path 'C3 Mobile Code Base:app:unspecified' --> 'org.checkerframework:checker-compat-qual' strictly '2.0.0' because of the following reason: debugRuntimeClasspath uses version 2.0.0
           Constraint path 'C3 Mobile Code Base:app:unspecified' --> 'org.checkerframework:checker-compat-qual' strictly '2.0.0' because of the following reason: debugRuntimeClasspath uses version 2.0.0
           Constraint path 'C3 Mobile Code Base:app:unspecified' --> 'org.checkerframework:checker-compat-qual' strictly '2.0.0' because of the following reason: debugRuntimeClasspath uses version 2.0.0
           Constraint path 'C3 Mobile Code Base:app:unspecified' --> 'org.checkerframework:checker-compat-qual' strictly '2.0.0' because of the following reason: debugRuntimeClasspath uses version 2.0.0

   > Could not resolve com.google.errorprone:error_prone_annotations:2.1.3.
     Required by:
         project :app

Я попытался поставить следующее, но оно не работает:

subprojects {
    project.configurations.all {

        exclude group: 'com.google.guava', module: 'failureaccess'


        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "26.1.0"
            }

            if('guava' == details.requested.name) {
                details.useVersion '27.0-android'
            }

        }
    }
}

Могу ли я узнать, что означают ошибки и как их решить?Спасибо.

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Я тоже пытался решить эту проблему, для меня это связано с новой библиотекой мест Google:

implementation "com.google.android.libraries.places:places:1.0.0"

, которая приводила к сбою тестов под androidTest.

В качестве обходного пути я добавил это к build.gradle:

configurations {
    androidTestImplementation.exclude module: 'guava'
    androidTestImplementation.exclude module: 'error_prone_annotations'
    androidTestImplementation.exclude module: 'checker-qual'
}

, который исправляет тесты lint и Android.Хотя пока не уверен в последствиях.

edit: В вашем случае вам, возможно, придется поставить checker-compat-qual вместо checker-qual

0 голосов
/ 02 мая 2019

Убедитесь, что у вас нет дублированных зависимостей для вариантов.Например:

implementation 'com.google.truth:truth:0.42' 
...
androidTestImplementation 'com.google.truth:truth:0.42' 
0 голосов
/ 12 февраля 2019

изменить

details.useVersion '27.0-android'

на

details.useVersion '23.6-android'

Из-за сообщения об ошибке Could not resolve com.google.guava:guava:23.6-android. говорит, что требуется версия 23.6-android

...