【问题标题】:Gradle dependencies with Travis CI on Android project在 Android 项目上使用 Travis CI 的 Gradle 依赖项
【发布时间】:2013-09-13 07:21:49
【问题描述】:

我在 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 的依赖,我需要做些其他事情吗?

提前感谢您的帮助。

【问题讨论】:

    标签: android dependencies continuous-integration gradle travis-ci


    【解决方案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
    

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

    【讨论】:

    • 未知包过滤器extra-android-support
    • 这很奇怪,如果你运行 android list sdk -a -e extra-android-support 包显示 id 为 79。你能再描述一下你的问题吗?
    • @Ruenzuo,您提供的标志 (-a) 搜索不同的选项列表。 -a 代表 --all。答案没有 --all,它应该。
    【解决方案2】:

    easier way:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多