Как жестко прописать фактический путь к репозиторию maven в Gradle, Android? - PullRequest
0 голосов
/ 03 сентября 2018

У меня странная проблема. Я только что вытащил нашу ветку master, и я единственный разработчик, который получает следующее сообщение об ошибке среди многих разработчиков Android в моей компании.

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':bookingcore-android:debugCompileClasspath'.
> Could not find play-services-ads-identifier.jar (com.google.android.gms:play-services-ads-identifier:15.0.1).
  Searched in the following locations:
      https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-ads-identifier/15.0.1/play-services-ads-identifier-15.0.1.jar

у нас есть следующее в корне build.gradle file

repositories {
        google()
        jcenter()
        ...
}

и в одном из наших модулей:

plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
}
dependencies { 
    ....
    implementation "com.google.android.gms:play-services-ads-identifier:15.0.1"
}

Исходя из моего поиска, фактический путь maven к play-services-ads-identifier.jar равен https://mvnrepository.com/artifact/com.google.android.gms/play-services-ads-identifier/15.0.1. Можно ли вообще сказать gradle, чтобы он загружал play-services-ads-identifier.jar по этой ссылке, а не из Google Maven?

1 Ответ

0 голосов
/ 03 сентября 2018

Исходя из моего поиска, фактический Maven путь к play-services-ads-identifier.jar составляет https://mvnrepository.com/artifact/com.google.android.gms/play-services-ads-identifier/15.0.1

Нет, это веб-страница. Среди прочего, он содержит:

Примечание: этот артефакт находится в репозитории Google (https://maven.google.com/)

На моей установке Android Studio 3.1.4, как и у ваших коллег, у меня нет проблем с:

implementation "com.google.android.gms:play-services-ads-identifier:15.0.1"

когда у меня есть google(), указанный в allprojects { repositories {} } в корне build.gradle.

По какой-то причине ваша Android Studio, похоже, считает, что это JAR, тогда как это действительно AAR.

Тактически вы можете форсировать проблему, изменив строку на:

implementation "com.google.android.gms:play-services-ads-identifier:15.0.1@aar"

Однако это лечение симптома, а не какой-либо основной проблемы.

Если вы хотите попробовать исправить основную проблему, попробуйте следующее:

  1. Если вы этого еще не сделали, выполните Build> Clean Project и посмотрите, поднимает ли он AAR (сомневаюсь, что это помогает, но это всегда хороший первый шаг)
  2. Если это не поможет, попробуйте «Файл»> «Неправильно кэшировать / перезапустить» и посмотрите, подхватывает ли он AAR
  3. Вы можете попытаться очистить кеш сборки , если вы используете Gradle 3.3 или выше, а затем посмотреть, подхватывает ли он AAR
  4. Если это не поможет, вы можете попробовать закрыть Android Studio, переименовав ~/.gradle/caches (или эквивалент в Windows) во что-то другое, снова открыть Android Studio и посмотреть, поднимает ли он AAR по мере перезапуска. загружает все ваши зависимости (если это работает, вы можете удалить переименованный каталог; в случае сбоя вы всегда можете восстановить переименованный каталог)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...