无法加载库:soinfo_relocate(linker.cpp:987):无法找到“libcoresdkinterface-jni.so 引用的符号 "wait4"
Cannot load library: soinfo_relocate(linker.cpp:987): cannot locate symbol "wait4" referenced by "libcoresdkinterface-jni.so
我正在为我的 Android Kitkat 应用程序添加 Jelly Beans 支持。我已经提到 minsdk 版本为 16,targerSdk 版本为 19。目前我正在针对 API 级别 19 构建它。当我 运行 在我的 Jelly Bean 设备上构建它时,它崩溃并出现错误这个问题的标题。
我知道要避免此错误,我需要针对为 API 级别 16 生成的 Android 工具链构建我的本地程序(因为 Jelly beans 从 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 位)。
我得到了问题的答案。 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" 。有效。
我正在为我的 Android Kitkat 应用程序添加 Jelly Beans 支持。我已经提到 minsdk 版本为 16,targerSdk 版本为 19。目前我正在针对 API 级别 19 构建它。当我 运行 在我的 Jelly Bean 设备上构建它时,它崩溃并出现错误这个问题的标题。
我知道要避免此错误,我需要针对为 API 级别 16 生成的 Android 工具链构建我的本地程序(因为 Jelly beans 从 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 位)。
我得到了问题的答案。 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" 。有效。