特拉维斯CI构build不适用于Android约束布局

我正在试图让Travisbuild立我的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 

我的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' } 

我在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 

任何想法如何解决这个问题? 是否有可能与Travisbuild立ConstraintLayout

Solutions Collecting From Web of "特拉维斯CI构build不适用于Android约束布局"

你的build.gradle试图引入com.android.support.constraint:constraint-layout:1.0.0-alpha2 。 我的SDKpipe理器只提供给我1.0.0-alpha1 (Android支持库的第32版)。 也许Travis CI也只有1.0.0-alpha1

因为我认为你的开发机器上有1.0.0-alpha2 ,所以我不太确定这里发生了什么。 Android Support Repository的分发包中可能会有一个小故障。

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

现在我find了一个新的解决方法来使用新的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" 

不要忘记接受主android对象的所有许可证:

 licenses: - android-sdk-license-.+ - '.+' 

有一个公开的问题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来解决这个问题。

我有与com.android.support.constraint:constraint-layout:1.0.0-alpha9相同的问题com.android.support.constraint:constraint-layout:1.0.0-alpha9 。 在我的情况下,我直接尝试在Travis中创build许可证文件:

 before_install: - mkdir "$ANDROID_SDK/licenses" || true - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license" 

但是由于我没有权限在$ANDROID_SDK上编写,并且不支持sudo ,我不知道下一步该怎么做。

我看到的唯一select是等到Google将其包含在许可证中或降级到alpha1

如果您直接接受许可证,则不再需要接受许可证的解决方法,如下所述:

  - echo yes | sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2" - echo yes | sdkmanager "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2" 

完整的工作示例使用约束 – 布局的代码库的Android API级22至25。