Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在circleci上为android应用程序或lib项目设置NDK?_Android_Android Ndk_Circleci - Fatal编程技术网

如何在circleci上为android应用程序或lib项目设置NDK?

如何在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 到目前为止,我找到的最佳解决

我有一个Android lib项目,它有一些依赖的C代码。为了进行编译,它需要运行
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
fi

CircleCI实际上安装了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文件夹到主目录。