My Travis build keeps failing because apparently it does not recognize the abi
…
language: android
sudo: required
env:
global:
- ANDROID_API_LEVEL=28
- ANDROID_BUILD_TOOLS_VERSION=28.0.3
- ANDROID_ABI=armeabi-v7a
- ANDROID_EMU_API_LEVEL=27
android:
components:
- tools
- platform-tools
- tools # appears twice as per Travis docs
- build-tools-$ANDROID_BUILD_TOOLS_VERSION
- android-$ANDROID_API_LEVEL
- android-$ANDROID_EMU_API_LEVEL
- extra-android-m2repository
- sys-img-${ANDROID_ABI}-android-${ANDROID_EMU_API_LEVEL}
licenses:
- 'android-sdk-preview-license-52d11cd2'
- 'android-sdk-license-.+'
- 'google-gdk-license-.+'
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache
before_script:
- echo no | android create avd --force -n test -t android-$ANDROID_EMU_API_LEVEL --abi $ANDROID_ABI -c 100M
- emulator -avd test -no-audio -no-window &
- android-wait-for-emulator
- adb shell input keyevent 82 &
- chmod +x gradlew
script:
- android list target
- ./gradlew clean build
- ./gradlew test
- ./gradlew connectedCheck
I have also tried to change the abi
in the emulator to google_apis
no luck. Also tried to add google_apis
in the system image download. I have currently tried API_LEVEL
22, 27 and 28
. dont really understand the issue here to be honest… a bit frustrating
Hey @SolarUltima,
Your .travis.yml
is really messy, that’s probably one reason, I’ve switched some things. I’ve isolated giving gradlew
permission to run, as you can see via:
before_script:
- chmod +x gradlew
You should also know sudo: required
, doesn’t really need to be used anymore. It’s sunsetted. So there’s no reason to actually have that in your .travis.yml
file.
In your Android project I also see ANDROID_ABI=armeabi-v7a
, arm64-v8a
or AArch64
has been available for quite some time now. I suggest you upgrade it.
This ABI is for ARMv8-A based CPUs, which support the 64-bit AArch64 architecture. It includes the Advanced SIMD like (Neon intrinsics
), architecture extensions.
I’ll remind you that Clang defaults to the -ffixed-x18
option on Android, so unless you have a hand-written assembler (or extremely old compiler) you shouldn’t need to worry about this.
I cleaned up your .travis.yml
that was pretty messy, with all I said above, try this and see if your project passes build:
language: android
jdk: oraclejdk8
env:
global:
- ANDROID_API_LEVEL=28
- ANDROID_BUILD_TOOLS_VERSION=28.0.3
- ANDROID_ABI=armeabi-v7a
android:
components:
- tools
- platform-tools
- tools
- extra-android-m2repository
licenses:
- 'android-sdk-preview-license-52d11cd2'
- 'android-sdk-license-.+'
- 'google-gdk-license-.+'
before_install:
- touch $HOME/.android/repositories.cfg
- yes | sdkmanager "platforms;android-28"
- yes | sdkmanager "build-tools;28.0.3"
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache
before_script:
- chmod +x gradlew
script:
- ./gradlew clean build
- ./gradlew test
I hope this helps, let me know what the final results are.
Montana Mendy
Travis CI Staff
1 Like
thank you @montana, that config did it!
Good to hear. If you run into anything else please post back.