我有一个专有的 JNI 应用程序,我需要为 MIPS 设备构建它。我已经阅读了“Initializing a Build Environment”、部分 NDK 文档、一些 Google Groups 线程和许多 StackOverflow 问题,但我仍然没有答案。
到目前为止,我已经使用 Google 的 repo 脚本检查了 Android 源代码,并将其放在~/AndroidSource
. 我还分别下载了下的SDK~/AndroidSDK
和下的NDK ~/AndroidNDK
。我正在尝试构建的代码位于单独的位置。SDK 和 NDK 二进制文件在我的路径中。对于构建,我尝试使用两个不同版本的 NDK 以及 Android 源代码树下的一个,并遇到了不同的问题。我当前的设置使用 NDK r8b,从 Android 源单独下载。
该应用程序有其Android.mk
和jni/Android.mk
。但是,后者中的几个指令指向路径,例如
frameworks/base/include
system/core/include
没有前缀。我认为这些是为了指向 Android 源代码中的各个目录,所以我将它们符号链接到当前目录。在进行了更多的符号链接、makefile 和源代码攻击之后,我得到了要编译的应用程序,但目前我停留在链接阶段,有很多对丢失方法主体的引用。在整个过程中,我知道我做错了什么。
如果有任何问题,我在 Linux x86_64 主机上。
所以我的问题是:
为 JNI 应用程序设置构建环境的正确方法是什么?我应该设置哪些环境变量、符号链接和/或路径扩展?我是否需要在每次ndk-build
调用之前或之前调用任何脚本?
另外,如果您纠正我弄错的任何概念或术语,我会很高兴。