Travis CI构建不适用于Android Constraint Layout

Ter*_*rry 22 android travis-ci android-constraintlayout

我想让Travis构建我的Android项目.它尝试下载库时失败ConstraintLayout.你知道我要做些什么才能让它发挥作用吗?

我的.travis.yml是这样的:

language: android
jdk:
  - oraclejdk8
android:
  components:
    - platform-tools
    - tools
    - build-tools-23.0.2
    - android-23
    - extra-android-support
    - extra-android-m2repository
    - extra-google-m2repository
Run Code Online (Sandbox Code Playgroud)

build.gradle是:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    defaultConfig {
        applicationId "my.example.bdd"
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha2'
    testCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support:support-annotations:23.4.0'
}
Run Code Online (Sandbox Code Playgroud)

而我在Travis上遇到的错误是:

FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApk'.
   > Could not find com.android.support.constraint:constraint-layout:1.0.0-alpha2.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/constraint/constraint-layout/1.0.0-alpha2/constraint-layout-1.0.0-alpha2.pom
         https://jcenter.bintray.com/com/android/support/constraint/constraint-layout/1.0.0-alpha2/constraint-layout-1.0.0-alpha2.jar
         file:/usr/local/android-sdk/extras/android/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha2/constraint-layout-1.0.0-alpha2.pom
         file:/usr/local/android-sdk/extras/android/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha2/constraint-layout-1.0.0-alpha2.jar
         file:/usr/local/android-sdk/extras/google/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha2/constraint-layout-1.0.0-alpha2.pom
         file:/usr/local/android-sdk/extras/google/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha2/constraint-layout-1.0.0-alpha2.jar
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?是否有可能ConstraintLayout用Travis 建造?

amo*_*uly 18

在新版本的支持库版本25.0.0之后,Constraint Layout Alpha1库显然不再适用于TravisCI.使用该版本是目前唯一的解决方法.

现在我找到了一个新的解决方法来使用新的Alpha9版本.在你的.travis.yml文件中添加:

before_install:
  - mkdir "$ANDROID_HOME/licenses" || true
  - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"
  - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license"
Run Code Online (Sandbox Code Playgroud)

别忘了接受主要android对象上的所有许可证:

licenses:
  - android-sdk-license-.+
  - '.+'
Run Code Online (Sandbox Code Playgroud)

  • 像魅力一样工作!感谢分享! (2认同)

Com*_*are 13

build.gradle试图进入com.android.support.constraint:constraint-layout:1.0.0-alpha2.我的SDK Manager仅提供我1.0.0-alpha1(Android支持存储库的Rev 32).也许特拉维斯CI也只有1.0.0-alpha1.

既然我认为你已经1.0.0-alpha2开发了你的开发机器,我不太确定这里发生了什么.Android支持存储库的分发包装可能存在故障.

  • `1.0.0-alpha2`附带Studio 2.2的预览版2.不知道他们如何使它可用于gradle构建...我的jenkins服务器上有类似的问题(没有找到1.0.0-alpha2) (2认同)

kam*_*kat 7

有一个未解决的问题https://code.google.com/p/android/issues/detail?id=212128

简而言之,它com.android.support.constraint:constraint-layout:1.0.0-alpha1被捆绑到Google Repository中,但1.0.0-alpha2后来的版本只能从gradle插件中获得,该插件需要放置许可证文本$HOME/.android/license/(如果没有找到,请尝试$ANDROID_HOME/licenses).

您可以将许可文本文件从本地计算机(在获得Android Studio 2.2提供的SDK Manager许可后)复制到CI服务器,如问题中所述.或降级以1.0.0-alpha1解决问题.