Я загрузил файл с нашего сервера nexus, следуя этой публикации: gradle - загрузите и разархивируйте файл с URL-адреса в моем проекте Android, сначала указав цель:

compile 'net.myapp.gwt:MyAppGWT:1.0:android@zip'

А затем у меня есть эта задача по разархивированию:

task unzip(type: Copy) {

    def zipPath = project.configurations.compile.find {it.name.startsWith("net.myapp.gwt")}
    println zipPath
    def zipFile = file(zipPath)
    def outputDir = file('src/main/assets/')

    from zipTree(zipFile)
    into outputDir
}

Проблема в том, что линия

project.configurations.compile

Порождает самую странную ошибку. Применение этого метода дает мне следующую ошибку:

Error:Could not find com.android.support:appcompat-v7:23.0.1.
Searched in the following locations:
file:/Applications/AndroioStudio.app/Contents/gradle/m2repository/com/android/support/appcompat-v7/23.0.1/appcompat-v7-23.0.1.pom
file:/Applications/AndroidStudio.app/Contents/gradle/m2repository/com/android/support/appcompat-v7/23.0.1/appcompat-v7-23.0.1.jar
https://jcenter.bintray.com/com/android/support/appcompat-v7/23.0.1/appcompat-v7-23.0.1.pom
https://jcenter.bintray.com/com/android/support/appcompat-v7/23.0.1/appcompat-v7-23.0.1.jar
https://maven.fabric.io/public/com/android/support/appcompat-v7/23.0.1/appcompat-v7-23.0.1.pom
https://maven.fabric.io/public/com/android/support/appcompat-v7/23.0.1/appcompat-v7-23.0.1.jar
https://nexus.domain.net/content/repositories/apps-releases/com/android/support/appcompat-v7/23.0.1/appcompat-v7-23.0.1.pom
https://nexus.domain.net/content/repositories/apps-releases/com/android/support/appcompat-v7/23.0.1/appcompat-v7-23.0.1.jar
Required by:
apps-android:app:unspecified

Please install the Android Support Repository from the Android SDK Manager.
<a href="openAndroidSdkManager">Open Android SDK Manager</a>

Теперь внезапно он не может найти

com.android.support:appcompat-v7:23.0.1

Что не проблема, если я удалю эту строку.

2
peuhse 11 Май 2016 в 16:48

2 ответа

Лучший ответ

appcompat поступает из вашей локальной папки sdk. Но когда вы пытаетесь получить доступ к configs.compile, gradle пытается разрешить все зависимости, включая appcompat из внешних репозиториев, и терпит неудачу, когда (что неудивительно) не находит appcompat.

Я не уверен, какое «правильное» решение, но возможный обходной путь - опубликовать зависимости android sdk в вашем локальном репозитории maven или nexus. Вот один из способов сделать это: github.com/simpligility/maven-android-sdk-deployer

Некоторые ответы отсюда тоже может помочь.

Наконец, можно было бы рассматривать вашу папку SDK как локальное репозиторий maven. См. здесь.

0
Community 23 Май 2017 в 12:16

@RaGe был прав. Добавление библиотек на наш локальный сервер репо помогло. Хотя, как вы заявляете, это обходной путь, и, возможно, в долгосрочной перспективе было бы неплохо найти лучшее решение.

1
peuhse 16 Май 2016 в 19:36