我有一个 Android lib 项目,它有一些依赖的 C 代码。为了让它编译它需要运行compileNdk...
任务。
在本地设置 NDK 非常简单。然而,让它与 circleci 一起工作并不是那么简单。circleci 文档有大量关于如何正确安装 android SDK 的信息,但没有关于如何在 circleci 上正确安装 NDK 的信息。
在 circleci 上安装 Android NDK 以便它可以使用我的持续集成设置成功构建/编译的最佳方法是什么?
我有一个 Android lib 项目,它有一些依赖的 C 代码。为了让它编译它需要运行compileNdk...
任务。
在本地设置 NDK 非常简单。然而,让它与 circleci 一起工作并不是那么简单。circleci 文档有大量关于如何正确安装 android SDK 的信息,但没有关于如何在 circleci 上正确安装 NDK 的信息。
在 circleci 上安装 Android NDK 以便它可以使用我的持续集成设置成功构建/编译的最佳方法是什么?
CircleCI 实际上安装了 NDK。它可以通过使用 $ANDROID_NDK 环境变量来引用。
他们在此处的依赖项部分的末尾对此进行了解释https://circleci.com/docs/android
对于现在看到的任何人,在撰写本文时,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
更新: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