Travis: how to know android sdk/ndk path?

2019-09-09 06:45发布

My android project is built with Ant and i have to edit ant.properties manually file to pass sdk.path variable pointing to android sdk directory. i'm going to change it to get sdk path from environment variable to make build possible on Travis CI. What is android sdk variable for this?

Also i have some jni code to be built with android ndk, so the similar question - what is env variable for android ndk on Travis?

3条回答
不美不萌又怎样
2楼-- · 2019-09-09 06:55

Don't use the Travis's Android support; it uses the old 'android' CLI instead of the new sdkmanager CLI that supports installing the NDK. Do something like:

before_install:
 - cd $HOME
 - wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -O $HOME/android-sdk.tgz
 - mkdir android
 - unzip android-sdk.tgz -d android/sdk
 - export PATH=$PATH:$HOME/android/sdk/tools:$HOME/android/sdk/tools/bin
 - cd build/<your-build-directory>

And then in the 'install' section:

install:
  - echo y | sdkmanager 'ndk-bundle'
  - echo y | sdkmanager 'cmake;3.6.3155560'
  - export ANDROID_HOME=$HOME/android/sdk
  - export ANDROID_NDK_HOME=$HOME/android/sdk/ndk-bundle

You can use the sdkmanager to install anything else you need. The benefit over the other answer is that this will grab the latest version of the NDK.

Finally, then you can set the environment variables ANDROID_HOME and ANDROID_NDK_HOME, and pass it to your specific environment.

Hope it helps.

查看更多
唯我独甜
3楼-- · 2019-09-09 06:55

Travis seems to provide Android support in beta. Android SDK can be found in /usr/local/android-sdk. However it seems that Android NDK is not provided and can't be found in /usr/local/android-ndk. The simple (and expensive walkaround for Travis) is to download/extract/use it right while building like this:

  before_script:
    - export NDK_VERSION=r10e
    - curl -L http://dl.google.com/android/ndk/android-ndk-${NDK_VERSION}-linux-x86_64.bin -O
    - chmod u+x android-ndk-${NDK_VERSION}-linux-x86_64.bin
    - ./android-ndk-${NDK_VERSION}-linux-x86_64.bin > /dev/null
    - rm android-ndk-${NDK_VERSION}-linux-x86_64.bin
    - export ANDROID_NDK_HOME=`pwd`/android-ndk-${NDK_VERSION}
    - export PATH=${ANDROID_NDK_HOME}:${PATH}

Feel free to comment this solution if you have a better one.

查看更多
一纸荒年 Trace。
4楼-- · 2019-09-09 06:56

You can export the Android variables using this command as well as Clive Lee's method

env:
  global:
      - ANDROID_HOME=$HOME/android/sdk
      - ANDROID_NDK_HOME=$HOME/android/sdk/ndk-bundle
查看更多
登录 后发表回答