如何在circleci上为android应用程序或lib项目设置NDK?
我有一个Android lib项目,它有一些依赖的C代码。为了进行编译,它需要运行如何在circleci上为android应用程序或lib项目设置NDK?,android,android-ndk,circleci,Android,Android Ndk,Circleci,我有一个Android lib项目,它有一些依赖的C代码。为了进行编译,它需要运行compileNdk…任务 在本地设置NDK非常简单。然而,让它与circleci一起工作并不是那么简单。circleci文档中有大量关于如何正确安装android SDK的信息,但没有关于如何在circleci上正确安装NDK的信息 在circleci上安装Android NDK的最佳方法是什么,这样它就可以使用我的持续集成设置成功构建/编译?更新:circleci现在为您安装NDK 到目前为止,我找到的最佳解决
compileNdk…
任务
在本地设置NDK非常简单。然而,让它与circleci一起工作并不是那么简单。circleci文档中有大量关于如何正确安装android SDK的信息,但没有关于如何在circleci上正确安装NDK的信息
在circleci上安装Android NDK的最佳方法是什么,这样它就可以使用我的持续集成设置成功构建/编译?更新:circleci现在为您安装NDK 到目前为止,我找到的最佳解决方案是通过wget安装NDK并运行bin文件。它还需要为ANDROID\u NDK\u HOME设置一个环境变量 下面是我在circleci上成功运行的示例
circle.yml
机器:
环境:
ANDROID\u HOME:/HOME/ubuntu/ANDROID
ANDROID\u NDK\u HOME:/HOME/ubuntu/ANDROID/ANDROID NDK
依赖项:
缓存目录:
-~/.android
-~/android
覆盖:
-./install-dependencies.sh
安装依赖项。sh
如果[!-e$DEPS];然后
... &&
wget-O$ANDROID\u HOME/ANDROID-install-ndk.bin&&
chmod a+x$ANDROID\u HOME/ANDROID-install-ndk.bin&&
cd$ANDROID\u HOME&$ANDROID\u HOME/ANDROID-install-ndk.bin&&
mv$ANDROID\u HOME/ANDROID ndk*$ANDROID\u HOME/ANDROID ndk
触摸$DEPS
fi更新:circleci现在为您安装NDK 到目前为止,我找到的最佳解决方案是通过wget安装NDK并运行bin文件。它还需要为ANDROID\u NDK\u HOME设置一个环境变量 下面是我在circleci上成功运行的示例
circle.yml
机器:
环境:
ANDROID\u HOME:/HOME/ubuntu/ANDROID
ANDROID\u NDK\u HOME:/HOME/ubuntu/ANDROID/ANDROID NDK
依赖项:
缓存目录:
-~/.android
-~/android
覆盖:
-./install-dependencies.sh
安装依赖项。sh
如果[!-e$DEPS];然后
... &&
wget-O$ANDROID\u HOME/ANDROID-install-ndk.bin&&
chmod a+x$ANDROID\u HOME/ANDROID-install-ndk.bin&&
cd$ANDROID\u HOME&$ANDROID\u HOME/ANDROID-install-ndk.bin&&
mv$ANDROID\u HOME/ANDROID ndk*$ANDROID\u HOME/ANDROID ndk
触摸$DEPS
fiCircleCI实际上安装了NDK。可以使用$ANDROID\u NDK环境变量引用它
他们在依赖项部分的末尾解释了这一点,CircleCI实际上安装了NDK。可以使用$ANDROID\u NDK环境变量引用它
他们在这里的依赖项部分的末尾解释了这一点在撰写本文时,CircleCI仍然没有将NDK捆绑到14.04环境中 但是,您可以手动添加并缓存它
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仍然没有在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
写这篇文章时,他们没有这样做。我引用了$ANDROID\u NDK环境变量,但仍然收到错误消息,因为NDK未配置。@somia在写这篇文章时,它只在Ubuntu 12容器上工作。如果您使用的是14,则他们似乎忘记添加NDK:(在写这篇文章时,他们没有这样做。我引用了$ANDROID\u NDK环境变量,但仍然收到错误消息,因为NDK未配置。@somia在写这篇文章时,这只是在Ubuntu 12容器上工作。如果你使用14,看起来他们忘记添加NDK了:(我已经尝试过这个解决方案。但是它对我来说仍然失败。你能帮我解决问题吗?我已经尝试过这个解决方案。但是它对我来说仍然失败。你能帮我解决问题吗?谢谢,这很有效。但是,也可以将它解压缩到主目录,以避免必须指定
你。)在配置中使用R_BUILD_FOLDER
。使用~/android/ndk-r11c/
和!-e~/android-ndk-r11c
和解压-d~android-ndk-r11c-linux-x86_64。zip
将缓存/检查/解压ndk文件夹到主目录。谢谢,这很好。不过,也可以将其解压到主目录避免在配置中指定您的_BUILD_文件夹
。使用~/android/ndk-r11c/
和!-e~/android-ndk-r11c
和解压-d~android-ndk-r11c-linux-x86_64。zip
将缓存/检查/解压ndk文件夹到主目录。