1

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

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

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

4

3 回答 3

4

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

他们在此处的依赖项部分的末尾对此进行了解释https://circleci.com/docs/android

于 2015-05-19T16:53:13.773 回答
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
于 2016-06-15T12:28:53.753 回答
-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 touch $DEPS fi

于 2015-01-21T17:37:50.033 回答