Travis CI Android - Can't find version that ma

2019-05-05 11:44发布

问题:

Hy people,

I'd like to test my android application with Travis after pushing to Github.

Unfortunately, I have an issue I can't solve for days:

Could not resolve all dependencies for configuration ':app:_defaultFlavorDebugCompile'.

> Could not find any version that matches com.google.android.gms:play-services:5.+.
   Required by:
    weightlifting_app_schwedt:app:unspecified

> Could not find any version that matches com.android.support:support-v4:20.+.
   Required by:
    weightlifting_app_schwedt:app:unspecified

My build.gradle includes

dependencies {
    compile 'com.google.android.gms:play-services:5.+'
    compile 'com.android.support:support-v4:20.+'
}

and this is my .travis.yml file

language: java
jdk: oraclejdk7
before_install:
- sudo apt-get update -qq
- if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch; fi
- wget http://dl.google.com/android/android-sdk_r21.0.1-linux.tgz
- tar -xzf android-sdk_r21.0.1-linux.tgz
- export ANDROID_HOME=$PWD/android-sdk-linux
- export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
- android list sdk --all
- chmod +x gradlew
- android update sdk --filter platform-tools,android-16,android-17,sysimg-17 --no-ui --force
- android update sdk --filter extra-android-support --no-ui --force > /dev/null
- android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null
- android update sdk --filter extra-google-m2repository --no-ui --force > /dev/null
- android update sdk --no-ui --all --filter 1,2

As you can see, I tried to include additional, associated repositories but it doesn't work yet ...

Maybe you can see my mistake because I'm out of ideas...

Thank you very much and have a nice day!

Best regards

回答1:

Updated response:

VM images already include fixed android-wait-for-emulator script and android SDK tools version 24.0.0 and the components your build require by default.

Build Environment Updates - 2014-12-09

Old response:

Run update tools = 1 before the other components, so you get the latest revisions and add the missing components extra-google-google_play_services and the build-tools revision you configured on your project.

language: java
jdk: oraclejdk7
before_install:
- sudo apt-get update -qq
- if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch; fi
- wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz
- tar -xzf android-sdk_r23.0.2-linux.tgz
- export ANDROID_HOME=$PWD/android-sdk-linux
- export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
- android list sdk --all
- chmod +x gradlew
- android update sdk --no-ui --all --filter 1,2
- android update sdk --filter platform-tools,android-16,android-17,sysimg-17 --no-ui --force
- android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null
- android update sdk --filter extra-android-support --no-ui --force > /dev/null
- android update sdk --filter extra-google-m2repository --no-ui --force > /dev/null
- android update sdk --filter extra-google-google_play_services --no-ui --force > /dev/null

Or custom this sample

language: android

jdk:
  # Check Travis JDKs: http://docs.travis-ci.com/user/languages/java/#Testing-Against-Multiple-JDKs
  # If 'jdk:' section is not found, Travis-ci use one jdk by default. You can comment out 'jdk:' and
  # test against more than one JDK: 'jdk' is combined with 'env' to construct a build matrix.
  # - openjdk7
  - oraclejdk7

android:
  components:
    # Check your project requirements and the components included by default on Travis-ci VM images.
    # Check required: https://github.com/google/iosched/blob/master/doc/BUILDING.md
    # Check defaults: http://docs.travis-ci.com/user/languages/android/#Pre-installed-components

    # Check Android SDK tools: http://developer.android.com/tools/sdk/tools-notes.html
    # Check Android SDK Platform-tools: http://developer.android.com/tools/revisions/platforms.html
    # Comment the lines below if the latest revisions of Android SDK Tools are included by default.
    - tools
    - platform-tools

    # Check BuildTools: http://developer.android.com/tools/revisions/build-tools.html
    # Comment the lines below if the BuildTools required for building your project are included.
    # - build-tools-20.0.0
    # - build-tools-21.0.2
    - build-tools-21.1.1

    # Check APIs: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels
    # Comment the lines below if the SDK versions used to compile your project are already included.
    # - android-20
    - android-21

    # Check extras: http://developer.android.com/sdk/installing/adding-packages.html#GetSupportLib
    # Comment the lines below if the latest Android extras are included or not required.
    - extra-android-m2repository
    - extra-android-support

    # Check more extras: http://developer.android.com/sdk/installing/adding-packages.html#GetGoogle
    # Comment the lines below if the latest Google extras are included or not required.
    - extra-google-m2repository
    - extra-google-google_play_services

    # Check possible addons, you can use the commandline: android list sdk --no-ui --all --extended
    # Comment the lines below if the latest Google apis addons are included or not required.
    # - addon-google_apis-google-21

    # Check get tools: http://developer.android.com/sdk/installing/adding-packages.html#GetTools
    # Comment the lines below if the latest images are included or you don't need to run emulator/s.
    # - sys-img-x86-android-21
    # - sys-img-x86_64-android-21
    # - sys-img-armeabi-v7a-addon-google_apis-google-21
    - sys-img-armeabi-v7a-android-21
    # - sys-img-armeabi-v7a-android-wear-20

  licenses:
    # Check licenses: http://docs.travis-ci.com/user/languages/android/#Dealing-with-Licenses
    # By default Travis will accept all the licenses, but it's also possible to define a white list:
    # White list current android-sdk-license revision.
    - 'android-sdk-license-5be876d5'
    # White list all android-sdk-license revisions.
    # - 'android-sdk-license-.+'
    # White list all the licenses.
    # - '.+'


回答2:

On older versions of Travis you may have needed to add android update sdk ....

On current version, you can just tell Travis to include some additional components. Specifically you need to add:

android:
  components:
    - extra-google-m2repository // for play services
    - extra-android-m2repository // for support lib

You can read more here.

Oddly you don't need to add extra-google-google_play_services. I just tested this when depending on com.google.android.gms:play-services-wallet