Travis CI 构建找不到 Android 约束布局 [英] Travis CI build doesn't find Android Constraint Layout

查看:29
本文介绍了Travis CI 构建找不到 Android 约束布局的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 Travis CI 构建我的 Android 应用程序,但我正在处理由于 com.android.support.constraint:constraint-layout 导致的构建失败.我看到了其他问题,但它们对我不起作用.

I am using Travis CI to build my Android app, but I am dealing with build failure due to com.android.support.constraint:constraint-layout. I saw other questions but they didn't worked for me.

我的.travis.yml文件:

language: android
android:
   components:
   - tools
   - tools #Running this twice get's the latest build tools (https://github.com/codepath/android_guides/wiki/Setting-up-Travis-CI)
   - platform-tools
   - android-24
   - build-tools-25.0.0
   - extra
   - extra-google-google_play_services
   - extra-google-m2repository
   - extra-android-m2repository
   - addon-google_apis-google-24
   licenses:
   - android-sdk-license-.+
   - '.+'

jdk: oraclejdk8

sudo: required

script:
   - chmod +x gradlew
   - ./gradlew clean build

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"

我收到一个错误:

> Could not resolve all dependencies for configuration ':app:_debugApkCopy'.
   > Could not find any matches for com.android.support.constraint:constraint-layout:+ as no versions of com.android.support.constraint:constraint-layout are available.
     Searched in the following locations:
         file:/usr/local/android-sdk/extras/android/m2repository/com/android/support/constraint/constraint-layout/maven-metadata.xml
         file:/usr/local/android-sdk/extras/android/m2repository/com/android/support/constraint/constraint-layout/
         file:/home/travis/build/*****/sdk-manager/com/android/support/constraint/constraint-layout/maven-metadata.xml
         file:/home/travis/build/*****/sdk-manager/com/android/support/constraint/constraint-layout/
     Required by:
         project :app

知道如何解决这个问题吗?

Any idea how to solve this?

推荐答案

我认为你需要在 platform-tools 之后更新 tools 由于这样的相互依赖:

I think that you need to update tools after platform-tools due to codependencies like this:

android:
  components:
    - tools
    - build-tools-25.0.2
    - platform-tools
    - tools

试试我的相关答案的这个简化版本,如果你是通过sdkmanager安装的,它有效,请参阅 1 2 3.

Try this simplified version of my related answer, if you install it via sdkmanager, it works, see 1 2 3.

language: android
jdk: oraclejdk8
sudo: required

android:
  components: # Cookbooks version: https://github.com/travis-ci/travis-cookbooks/tree/9c6cd11
    - tools # Update preinstalled tools from revision 24.0.2 to 24.4.1
    - build-tools-25.0.2 # Match build-tools version used in build.gradle
    - platform-tools # Update platform-tools to revision 25.0.3+
    - tools # Update tools from revision 24.4.1 to 25.2.5

env:
  global:
    - API=25 # Android API level 25 by default
    - TAG=google_apis # Google APIs by default, alternatively use default
    - ABI=armeabi-v7a # ARM ABI v7a by default
    - QEMU_AUDIO_DRV=none # Disable emulator audio to avoid warning
    - ANDROID_HOME=/usr/local/android-sdk-24.0.2 # Depends on the cookbooks version used in the VM
    - TOOLS=${ANDROID_HOME}/tools # PATH order matters, exists more than one emulator script
    - PATH=${ANDROID_HOME}:${ANDROID_HOME}/emulator:${TOOLS}:${TOOLS}/bin:${ANDROID_HOME}/platform-tools:${PATH}
    - ADB_INSTALL_TIMEOUT=20 # minutes (2 minutes by default)

before_install:
  - export EMULATOR="system-images;android-${API};${TAG};${ABI}" # Used to install/create emulator
  - echo 'count=0' > /home/travis/.android/repositories.cfg # Avoid warning

install:
  # List and delete unnecessary components to free space
  - sdkmanager --list || true
  - sdkmanager --uninstall "system-images;android-15;default;armeabi-v7a"

  # Update sdk tools to latest version and install/update components
  - echo yes | sdkmanager "tools"
  - echo yes | sdkmanager "platforms;android-25" # Latest platform required by SDK tools
  - echo yes | sdkmanager "platforms;android-${API}" # Android platform required by emulator
  - echo yes | sdkmanager "extras;android;m2repository"
  - echo yes | sdkmanager "extras;google;m2repository"
  - 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"
  - echo yes | sdkmanager "$EMULATOR" # Install emulator system image
  # Create and start emulator
  - echo no | avdmanager create avd -n acib -k "$EMULATOR" -f --abi "$ABI" --tag "$TAG"
  - emulator -avd acib -engine classic -no-window -verbose -qemu -m 512 &

before_script:
  # Wait for emulator fully-booted and disable animations
  - android-wait-for-emulator
  - adb shell settings put global window_animation_scale 0 &
  - adb shell settings put global transition_animation_scale 0 &
  - adb shell settings put global animator_duration_scale 0 &
  - adb shell input keyevent 82 &

script:
  - ./gradlew build connectedCheck

after_script:
  - cat ${TRAVIS_BUILD_DIR}/*/build/outputs/androidTest-results/connected/*

这篇关于Travis CI 构建找不到 Android 约束布局的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆