我在使用Travis CI上的Gradle构建Android项目时遇到了麻烦。
我在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:
- TERM=dumb ./gradlew build
- TERM=dumb ./gradlew connectedInstrumentTest
我在Travis上得到了这个:
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
在我的本地项目上似乎一切正常。为了获得Travis的依赖,我还需要做些别的事情吗?
感谢您的帮助。
答案 0 :(得分:11)
我在一些帮助下解决了这个问题。似乎Gradle无法在本地存储库中找到Android支持依赖项,需要使用以下命令安装这些依赖项:
android update sdk --filter extra-android-support --no-ui --force > /dev/null
android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null
您可以在此公共存储库(https://github.com/Ruenzuo/cloaked-octo-cyril)上查看我的.travis.yml文件,希望这可以帮助其他人。
答案 1 :(得分:10)
android:
components:
- extra-android-m2repository
您必须记得接受license。例如,添加:
android:
licenses:
- android-sdk-license-.+
答案 2 :(得分:1)
上面的答案是正确的。我只是觉得用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