Подтвердить что ты не робот

Android Gradle build failed: Не удалось найти com.google.android:support-v4:r18

EDIT:

Эта проблема как-то исчезла, возможно, из-за того, что новая система сборки Gradle стала более зрелой.

У меня есть два отдельных проекта Android:

Первый проект - это Android-библиотека с использованием плагина android-library для Gradle, который зависит от support-library-v4: r18. Фрагмент из зависимостей в build.gradle:

compile 'com.android.support:support-v4:18.0.0'

Библиотека поддержки извлекается из Репозитория поддержки Android, установленного через Android SDK Manager, как описано здесь. Затем этот проект создается и публикуется в локальном репозитории maven путем запуска: gradle uploadArchives

Я проверил, и в самом деле библиотека .aar затем доступна в локальном репозитории maven.

Второй проект - Android-приложение с плагином android для Gradle, которое ссылается на зависимость maven от библиотеки, созданной первым проектом. Вот фрагмент из build.gradle:

repositories {
    mavenLocal()
    mavenCentral()
}
dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile 'com.example:cool-lib:1.0.0-SNAPSHOT'
}

ПРИМЕЧАНИЕ. Эти два проекта полностью отделены от другого. Означающий, что, они НЕ являются подпроектами одного и того же корневого проекта.

Когда я пытаюсь построить второй проект, запустив: gradle assemble

Я получаю следующую ошибку:

Could not find com.google.android:support-v4:r18.
Required by:
    com.example:app-project:unspecified > com.example:cool-lib:1.0.0-SNAPSHOT

Я проверил файл .pom cool-lib в моей локальной папке maven repo, и я увидел, что он имеет следующую зависимость:

<dependency>
  <groupId>com.android.support</groupId>
  <artifactId>support-v4</artifactId>
  <version>18.0.0</version>
  <scope>compile</scope>
</dependency>

По какой-то причине Gradle пытается получить библиотеку поддержки v4 r18 для lib-проекта из центрального хранилища maven вместо того, чтобы получать его из Android Support Repository. Он терпит неудачу, так как последняя версия в Maven Central поддержки-библиотеки-v4 r7.

Есть ли способ заставить Gradle строго выбирать поддержку-library-v4 r18 из Android Support Repository также для внешних библиотек Android, на которые ссылаются Maven Central?

4b9b3361

Ответ 1

Вам нужно установить Android Support Repository из диспетчера SDK. После этого Gradle сможет разрешать библиотеки поддержки из ${SDK_HOME}\extras\android\m2repository\.

Ответ 2

убедитесь, что у вас есть файл local.properties в основной папке проекта, а переменная sdk.dir указывает на Android SDK. (проверено на mac)

Ответ 3

Вам нужно установить Android Support Repository, как говорит madhead. Но в моем случае он отсутствовал. Вы должны перейти в Инструменты- > Управление дополнительными сайтами... и проверить все "Google Inc.", места. Затем в списке пакетов появится Android Support Repository, и вы можете установить его.