我有一个Android lib项目,它有一些它依赖的C代码。为了编译它,需要运行compileNdk...
任务。
在本地设置NDK非常简单。然而,让它与circleci一起工作并不是那么简单。 circleci文档有关于如何正确安装android SDK的大量信息,但没有关于如何在circleci上正确安装NDK的信息。
在circleci上安装Android NDK的最佳方法是什么,以便通过我的持续集成设置成功构建/编译?
答案 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
网络