特拉维斯:如何知道android sdk/ndk路径?

特拉维斯:如何知道android sdk/ndk路径?,android,ant,travis-ci,Android,Ant,Travis Ci,我的android项目是用Ant构建的,我必须手动编辑Ant.properties文件以传递指向android sdk目录的sdk.path变量。我将修改它,从环境变量中获取sdk路径,以便在Travis CI上进行构建。android sdk变量是什么 我还有一些jni代码要用android ndk构建,所以类似的问题是——Travis上android ndk的env变量是什么?Travis似乎在beta版中提供了。Android SDK可以在/usr/local/Android SDK中找到

我的android项目是用Ant构建的,我必须手动编辑Ant.properties文件以传递指向android sdk目录的sdk.path变量。我将修改它,从环境变量中获取sdk路径,以便在Travis CI上进行构建。android sdk变量是什么

我还有一些jni代码要用android ndk构建,所以类似的问题是——Travis上android ndk的env变量是什么?

Travis似乎在beta版中提供了。Android SDK可以在/usr/local/Android SDK中找到。但是,似乎没有提供Android NDK,并且在/usr/local/Android NDK中找不到。Travis的简单而昂贵的解决方案是,在这样构建时下载/提取/正确使用它:

  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}
如果您有更好的解决方案,请随时发表意见。

Travis似乎提供了beta版。Android SDK可以在/usr/local/Android SDK中找到。但是,似乎没有提供Android NDK,并且在/usr/local/Android NDK中找不到。Travis的简单而昂贵的解决方案是,在这样构建时下载/提取/正确使用它:

  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}

如果您有更好的解决方案,请随意评论此解决方案。

不要使用Travis的Android支持;它使用旧的“android”CLI,而不是支持安装NDK的新sdkmanager CLI。做一些类似于:

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>
您可以使用sdkmanager安装所需的任何其他内容。与另一个答案相比的好处是,这将获得NDK的最新版本

最后,您可以设置环境变量ANDROID_HOME和ANDROID_NDK_HOME,并将其传递给您的特定环境


希望有帮助。

不要使用Travis的Android支持;它使用旧的“android”CLI,而不是支持安装NDK的新sdkmanager CLI。做一些类似于:

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>
您可以使用sdkmanager安装所需的任何其他内容。与另一个答案相比的好处是,这将获得NDK的最新版本

最后,您可以设置环境变量ANDROID_HOME和ANDROID_NDK_HOME,并将其传递给您的特定环境


希望有帮助。

您可以使用此命令以及Clive Lee的方法导出Android变量

env:
  global:
      - ANDROID_HOME=$HOME/android/sdk
      - ANDROID_NDK_HOME=$HOME/android/sdk/ndk-bundle

您可以使用此命令以及Clive Lee的方法导出Android变量

env:
  global:
      - ANDROID_HOME=$HOME/android/sdk
      - ANDROID_NDK_HOME=$HOME/android/sdk/ndk-bundle

travis update alert:sdkmanager自带android环境,因此您不需要上面的“wget”行。直接使用sdkmanager就行了。它不起作用,我在执行模型规则时遇到了>抛出的异常:NdkComponentModelPlugin.RulescheckNdkDirNdkHandler,NdkConfig>未找到NDK位置。使用local.properties文件中的ndk.dir或ANDROID_ndk_HOME环境变量定义位置。travis更新警报:sdkmanager自带ANDROID环境,因此您不需要上面的“wget”行。直接使用sdkmanager就行了。它不起作用,我在执行模型规则时遇到了>抛出的异常:NdkComponentModelPlugin.RulescheckNdkDirNdkHandler,NdkConfig>未找到NDK位置。使用local.properties文件中的ndk.dir或ANDROID\u ndk\u HOME环境变量定义位置。