Gradle зависимости с Travis CI в Android-проекте
У меня возникли проблемы с проектом Android с Gradle на Travis CI.
Я объявлял свои зависимости вроде этого на моем build.gradle:
dependencies {
compile 'com.android.support:appcompat-v7:18.0.0'
compile 'com.android.support:support-v4:18.0.0'
freeCompile files (
'libs/GoogleAdMobAdsSdk-6.4.1.jar'
)
}
Это мой .travis.yml script:
script:
- TERM=dumb ./gradlew build
- TERM=dumb ./gradlew connectedInstrumentTest
И я получаю это от Тревиса:
A problem occurred configuring project ':FlavorTest'.
> Failed to notify project evaluation listener.
> Could not resolve all dependencies for configuration ':FlavorTest:_FreeDebugCompile'.
> Could not find com.android.support:appcompat-v7:18.0.0.
Required by:
cloaked-octo-spice:FlavorTest:unspecified
> Could not find com.android.support:support-v4:18.0.0.
Required by:
cloaked-octo-spice:FlavorTest:unspecified
В моем местном проекте все работает нормально. Мне нужно сделать что-то еще, чтобы получить зависимости от Трэвиса?
Спасибо за помощь заранее.
Ответы
Ответ 1
Я решил это с некоторой помощью. Похоже, что Gradle не смог найти зависимости Android Support в локальном репозитории, которые необходимо установить с помощью следующей команды:
android update sdk --filter extra-android-support --no-ui --force > /dev/null
android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null
Вы можете проверить файл .travis.yml в этом публичном репозитории (https://github.com/Ruenzuo/cloaked-octo-cyril), надеюсь, что это поможет кому-то другому.
Ответ 2
более простой способ:
android:
components:
- extra-android-m2repository
Вы должны помнить license. Например, добавив:
android:
licenses:
- android-sdk-license-.+
Ответ 3
Правильный ответ. Я просто подумал, что стоит опубликовать другое решение с примером travis.yml. Вы можете найти хороший сайт на сайте Pestrada github: https://github.com/pestrada/android-tdd-playground/blob/master/.travis.yml
Соответствующие строки:
# Install required components.
# For a full list, run `android list sdk -a --extended`
# Note that sysimg-18 downloads the ARM, x86 and MIPS images (we should optimize this).
# Other relevant API's
- echo yes | android update sdk --filter platform-tools --no-ui --force > /dev/null
- echo yes | android update sdk --filter android-18 --no-ui --force > /dev/null
- echo yes | android update sdk --filter android-19 --no-ui --force > /dev/null
- echo yes | android update sdk --filter sysimg-19 --no-ui --force > /dev/null
- echo yes | android update sdk --filter extra-android-support --no-ui --force > /dev/null
- echo yes | android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null