如何在Linux中安装Android NDK?

36
我已从这里下载了安卓NDK:http://developer.android.com/tools/sdk/ndk/index.html
选择了适用于 Linux 64位 (x86) 的 android-ndk-r10c-linux-x86_64.bin。请问如何安装?指导不可行。 我的操作系统是:
57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
10个回答

37

标准方式

Android的NDK现在作为自解压可执行文件提供。您可能需要设置可执行位:

$ chmod +x android-ndk-r10c-linux-x86_64.bin
$ ./android-ndk-r10c-linux-x86_64.bin

上述操作将导致NDK提取到当前工作目录中。
手动提取
由于.bin文件实际上只是一个7-Zip自解压缩存档,因此您可以在需要时手动提取内容:
$ 7za x -o/path/to/extract/to/ android-ndk-r10c-linux-x86_64.bin


例如,7-Zip在Ubuntu中可以通过apt-get获取:

$ sudo apt-get install p7zip-full

更新
截至至少r14b版本,NDK下载页面上已经恢复标准的ZIP压缩文件。


1
除了“它不起作用”之外,您可能希望发布更多信息。请参阅http://stackoverflow.com/help/how-to-ask - NuSkooler
./android-ndk-r10c-linux-x86_64.bin:加载共享库 libstdc++.so.6 时出错:无法打开共享对象文件:没有那个文件或目录。 - Vardan95
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - NuSkooler
这个 .bin 文件在哪里可以找到?我只看到 .zip 文件(而且没有任何 README,Google 真是太不负责任了)。 - axd

9

如果您已经安装了Android Studio:

您可以使用Android Studio中的SDK管理器安装NDK

从一个打开的项目中,选择菜单栏中的工具(Tools) > Android > SDK管理器。 点击SDK工具选项卡。 勾选LLDB、CMake和NDK旁边的复选框。 应用

enter image description here:


1
这不是我正在处理的Unity项目所需的正确Android NDK版本。 - CrandellWS
2
Ubuntu默认情况下不会安装Android Studio,问题中也没有提到它已经安装。因此,除非在“使用Android Studio内的SDK Manager安装NDK”之前提供“首先安装Android Studio”的指示,否则答案是不正确的。 - ilias iliadis

8

另外一种下载和安装(unpack)的方式(压缩包大小约为820MB, 解压后为2.9G):

wget https://dl.google.com/android/repository/android-ndk-r20-linux-x86_64.zip
unzip android-ndk-r20-linux-x86_64.zip

3

进入您下载该文件的目录,然后执行:

chmod +x android-ndk-r10c-linux-x86_64.bin
./android-ndk-r10c-linux-x86_64.bin

它应该在那里解压缩。工具链将位于android-ndk-r10c-linux-x86_64/toolchains中。根目录的名称可能略有不同。


2
很遗憾,这是不正确的,因为android-ndk-r10c-linux-x86_64.bin是一个ELF可执行文件,而不是一个shell脚本。 - vitaut

1
我已经按照以下方式完成了:

通过apt-get安装7-Zip,如下所示

$ sudo apt-get install p7zip-full

前往存放NDK二进制文件的文件夹,然后执行该命令。

$ 7z x *bin

1
我有一个基于Arch Linux的AndroidBBQ,使用vmware安装。但是我想我的指令对于任何Linux发行版应该都是一样的。我使用Android Studio内置的SDK管理器尝试安装NDK。下载失败,因为/tmp中没有空间。事实证明,大多数Linux发行版都有基于ramdisk的tmpfs(在RAM中挂载的临时文件系统,位于/tmp),并且没有单独的可扩展分区。/tmp通常通过使用可用RAM的50%进行挂载。

使用Android Studio内置的SDK管理器安装NDK ->不太方便
a)扩展/tmp
我以root身份编辑了我的fstab,使用以下命令:

sudo nano /etc/fstab  

我将这行代码添加到了我的 fstab 文件中。
none /tmp tmpfs size=8G 0 0  

注意: 如果没有这样的行,请在fstab末尾添加该行。如果已存在这样的行,则意味着您已经扩展了/tmp,但它仍然不够。因此,只需更改“size”值,将其增加几个GB。
然后我重新启动了计算机。一旦我这样做,我的/tmp就被扩展到8GB大小。出于开发目的,我认为我们应该随时扩展我们的/tmp,因为我们迟早都必须这样做。/tmp的大小不取决于硬盘(无论是虚拟还是物理)中的可用空间。

b) 再次运行NDK安装
我再次从AndroidStudio中运行了NDK安装程序。它必须重新下载NDK zip文件。很遗憾,没有恢复/重新检查功能来恢复中断的安装。我的下载速度很慢,所以我最小化了虚拟Linux的窗口并继续阅读新闻。后来,我想可能发生了内存/页面交换。下载失败了。我重新启动了Linux并以同样的方式重新启动了NDK安装程序。这次,我让虚拟Linux机器保持在前台。NDK安装成功,并显示以下日志:

安装NDK
下载https://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
将NDK安装在 /opt/android-sdk/ndk-bundle


在Linux中手动安装NDK(首选) 我很惊讶官方的Android开发部分没有指明Android NDK的确切安装位置。Android Studio在以下位置查找NDK:

/opt/android-sdk/ndk-bundle  

所以,按照以下步骤操作:
1.https://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip下载NDK zip文件。
2. 打开zip文件并打开其中的android-ndk-r12b-linux-x86_64(或类似)文件夹。
3. 现在将所有这些文件和文件夹提取到/opt/android-sdk/ndk-bundle中。
4. 启动Android Studio,它应该检测到NDK的存在。


1

你可以使用sdkmanager,以下是详细代码:

wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -O android-sdk.zip
unzip android-sdk.zip -d .
rm -f android-sdk.zip
mkdir -p /opt/android-sdk/ # you can choose the folder to install all the android sdk\ndk\build-tools ...
mv ./tools/ /opt/android-sdk/
export ANDROID_HOME="/opt/android-sdk"
export PATH="${ANDROID_HOME}/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:${PATH}"
yes | sdkmanager --licenses
sdkmanager "platforms;android-27" 
... 

1
  1. 使用wget下载适用于Linux x86_64版本的Android NDK wget https://dl.google.com/android/repository/android-ndk-r25b-linux.zip
  2. 更改权限 chmod 755 android-ndk-r25b-linux.zip
  3. 解压到目标路径,例如 /root/Library/Android/sdk/ndk.. 等。这将安装在 /root/Library/Android/sdk/ndk/android-ndk-r25b unzip android-ndk-r25b-linux.zip -d /root/Library/Android/sdk/ndk

0

Ubuntu会报错:bash: ./android-ndk-r10c-linux-x86_64.bin: 没有那个文件或目录

解决方法: apt-get install p7zip-full

7z x *bin


0

使用android cli工具sdkmanager。建议将NDK side-by-side安装到您的SDK中,这意味着您应该在$ANDROID_SDK_ROOT/ndk下安装NDK。如果您使用像Gradle这样的构建工具,您可以通过build.gradle指定您的版本,并且在构建过程中,如果缺少NDK,则会下载/安装到Android SDK目录中。如果您想手动安装NDK,则可以运行以下命令(将版本号替换为您选择的版本):

sudo env "PATH=$PATH" sdkmanager --install "ndk;25.1.8937393" --sdk_root=$ANDROID_SDK_ROOT --verbose

回显命令似乎给出了错误的结果,第一个命令在路径前面有一个额外的引号,因此没有正确地引用,对我来说,第二个命令被实际值(整个$PATH和android仍为空)替换了。 - XIU

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接