Ответ 1
Вам нужно установить Android Support Repository
из диспетчера SDK. После этого Gradle сможет разрешать библиотеки поддержки из ${SDK_HOME}\extras\android\m2repository\
.
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?
Вам нужно установить Android Support Repository
из диспетчера SDK. После этого Gradle сможет разрешать библиотеки поддержки из ${SDK_HOME}\extras\android\m2repository\
.
убедитесь, что у вас есть файл local.properties в основной папке проекта, а переменная sdk.dir указывает на Android SDK. (проверено на mac)
Вам нужно установить Android Support Repository, как говорит madhead. Но в моем случае он отсутствовал. Вы должны перейти в Инструменты- > Управление дополнительными сайтами... и проверить все "Google Inc.", места. Затем в списке пакетов появится Android Support Repository, и вы можете установить его.
ссылаются на: https://github.com/simpligility/maven-android-sdk-deployer
скачать библиотеку поддержки с поддержкой