10

我在 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 的依赖吗?

我在这里先向您的帮助表示感谢。

4

3 回答 3

11

我在一些帮助下解决了这个问题。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

您可以在这个公共存储库( https://github.com/Ruenzuo/cloaked-octo-cyril )上查看我的 .travis.yml 文件,希望这对其他人有所帮助。

于 2013-09-11T19:23:01.937 回答
10

更简单的方法

android:
  components:
    - extra-android-m2repository

您必须记住接受许可。例如添加:

android:
  licenses:
    - android-sdk-license-.+
于 2015-01-08T15:48:48.223 回答
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
于 2014-01-17T21:15:48.700 回答