无法加载库:soinfo_relocate(linker.cpp:987):无法找到“libcoresdkinterface-jni.so”引用的符号“wait4”

时间:2015-12-16 06:27:20

标签: java android c++ android-ndk android-4.2-jelly-bean

我正在为我的Android Kitkat应用程序添加Jelly Beans支持。我已经提到minsdk版本为16,targerSdk版本为19.目前我正在构建它反对API级别19.构建后,当我在我的Jelly Bean设备上运行时,它崩溃时提到错误作为此问题的标题。

我知道为了避免这个错误,我需要针对API级别16生成的Android工具链构建我的本机(因为Jelly bean从api级别16开始)。我有Android NDK版本android-ndk-r10d。所以我进入了我的NDK目录并使用以下命令为API级别16创建了一个独立的工具链。

build/tools/make-standalone-toolchain.sh --toolchain=arm-linux-androideabi-4.8 --platform=android-16 --install-dir=/usr/lo0cal/android-toolchain-16/

上面的命令创建了一个名为android-toolchain-16/ in /usr/local/的目录。我将路径/usr/lo0cal/android-toolchain-16/bin添加到PATH变量中。

然后我继续使用我的脚本构建我的本机。然后我构建了我的应用程序并尝试但它仍然崩溃。我是否需要下载较低版本的Android NDK?因为现在我正在使用android-ndk-r10d。正如我在网上发现的那样,android-ndk-8b是在API 16级之后发布的。

或者我还能做些什么?我使用OS X 10.9.5和i5(64位)。

1 个答案:

答案 0 :(得分:0)

我得到了问题的答案。 wait4函数来自wait.h文件,它出现在我的SYSROOT中两个地方: - $ SYSROOT / usr / include / linux / wait.h $ SYSROOT / usr / include / sys / wait.h。来自'sys'文件夹的wait.h有wait4方法的定义。在我的情况下,它包含来自'linux'文件夹的wait.h。一旦我将#include“wait.h”更改为#include“sys / wait.h”。它有效。