如何在android app或lib项目的circleci上设置NDK?

时间:2015-01-21 17:37:50

标签: android android-ndk circleci

我有一个Android lib项目,它有一些它依赖的C代码。为了编译它,需要运行compileNdk...任务。

在本地设置NDK非常简单。然而,让它与circleci一起工作并不是那么简单。 circleci文档有关于如何正确安装android SDK的大量信息,但没有关于如何在circleci上正确安装NDK的信息。

在circleci上安装Android NDK的最佳方法是什么,以便通过我的持续集成设置成功构建/编译?

3 个答案:

答案 0 :(得分:4)

CircleCI实际上安装了NDK。可以使用$ ANDROID_NDK环境变量引用它。

他们在这里的依赖关系部分https://circleci.com/docs/android

的末尾解释了这一点

答案 1 :(得分:1)

对于现在正在寻找的人来说,在撰写本文时,CircleCI仍然没有在14.04环境中捆绑NDK。

但是,您可以手动添加并缓存它

dependencies:
  cache_directories:
    - ~/android-ndk-r11c
  pre:
    - if [[ ! -e ~/android-ndk-r11c ]]; then wget http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip && unzip -d ~ android-ndk-r11c-linux-x86_64.zip; fi

手动添加环境变量:

machine:
  environment:
    ANDROID_NDK: $HOME/android-ndk-r11c
    ANDROID_NDK_HOME: $ANDROID_NDK
    PATH: $PATH:$ANDROID_NDK

答案 2 :(得分:-1)

更新:circleci现在为您安装NDK。

到目前为止,我找到的最佳解决方案是通过wget安装NDK并运行bin文件。它还需要为ANDROID_NDK_HOME设置环境变量。

以下是我在circleci上成功运行的示例。

circle.yml   机:     环境:       ANDROID_HOME:/ home / ubuntu / android       ANDROID_NDK_HOME:/ home / ubuntu / android / android-ndk

依赖关系:     cache_directories:        - 〜/ .android        - 〜/ android     覆盖:        - ./install-dependencies.sh

install-dependencies.sh   如果[! -e $ DEPS];然后       ...&&       wget http://dl.google.com/android/ndk/android-ndk-r10d-linux-x86_64.bin -O $ ANDROID_HOME / android-install-ndk.bin&&       chmod a + x $ ANDROID_HOME / android-install-ndk.bin&&       cd $ ANDROID_HOME&& $ ANDROID_HOME / android-install-ndk.bin&&       mv $ ANDROID_HOME / android-ndk * $ ANDROID_HOME / android-ndk       触摸$ DEPS     网络