我正在尝试按照https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_for_Android_build上的说明在运行OS X El Capitan的Mac上构建适用于Android的Firefox。我的第一次尝试失败,因为Android for Firefox似乎无法使用r11b
脚本安装的bootstrap.py
NDK进行构建,因此我在Mozilla页面上下载并安装了各种提及的r10e
NDK。我已经到了./mach build
步骤失败的
0:06.01 checking for the Android toolchain directory...
0:06.01 DEBUG: Trying /Users/fkoschara/.mozbuild/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
0:06.01 DEBUG: Trying /Users/fkoschara/.mozbuild/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86
0:06.01 DEBUG: Trying /Users/fkoschara/.mozbuild/android-ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64
0:06.01 DEBUG: Trying /Users/fkoschara/.mozbuild/android-ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86
0:06.01 DEBUG: Trying /Users/fkoschara/.mozbuild/android-ndk/toolchains/arm-linux-androideabi-4.7/prebuilt/darwin-x86_64
0:06.01 DEBUG: Trying /Users/fkoschara/.mozbuild/android-ndk/toolchains/arm-linux-androideabi-4.7/prebuilt/darwin-x86
0:06.01 ERROR: You have to specify --with-android-toolchain=/path/to/ndk/toolchain.
,因为
ls: /Users/fkoschara/.mozbuild/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64: No such file or directory
我尝试创建一个独立的工具链,但是当我运行$ ~/.mozbuild/android-ndk/build/tools/make-standalone-toolchain.sh --toolchain=arm-linux-androideabi-4.9 --platform=android-21 --system=darwin-x86_64 --install-dir=/Users/fkoschara/.mozbuild/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
时,我得到了
Host system 'darwin-x86_64' is not supported by the source NDK!
Try --system=<name> with one of: linux-x86_64
我在没有--system=darwin-x86_64
的情况下再次尝试并获得了
Host system 'darwin-x86' is not supported by the source NDK!
Try --system=<name> with one of: linux-x86_64
如何获得Darwin工具链以便我可以进行交叉编译?
答案 0 :(得分:1)
在Android Studio捆绑之前,NDK发布曾经是普通的ZIP文件,因此很容易犯错误:在错误的平台上安装NDK。在您的情况下,您碰巧在Mac上安装了Linux 64位版本。毫无疑问,这是行不通的。我很惊讶您甚至可以运行ndk-build
,因为它通常使用make
的捆绑版本,而不是系统中安装的版本。也许从你的苦难的故事中省略了选择正确make
的部分。