gpt4 book ai didi

Android NDK 无法加载 libc++_shared.so,获取 "cannot locate symbol ' rand' 引用

转载 作者:行者123 更新时间:2023-11-29 17:41:44 27 4
gpt4 key购买 nike

在我的 java 类中我有这个:

static
{
System.loadLibrary("c++_shared");

System.loadLibrary("com.testandroid.LibAndroidBridge");
}

我的 Application.mk 有这个:

NDK_TOOLCHAIN_VERSION:=4.8
APP_STL := c++_shared
APP_ABI := x86

一切正常,但当我运行应用程序时(在模拟器或设备上,所以 x85 和 arm)我在 LogCat 中得到这个:

02-13 12:00:32.174: D/dalvikvm(2142): Trying to load lib /data/app-lib/com.testandroid-1/libc++_shared.so 0xb0fcfc60
02-13 12:00:32.174: D/dalvikvm(2142): Added shared lib /data/app-lib/com.testandroid-1/libc++_shared.so 0xb0fcfc60
02-13 12:00:32.174: D/dalvikvm(2142): No JNI_OnLoad found in /data/app-lib/com.testandroid-1/libc++_shared.so 0xb0fcfc60, skipping init
02-13 12:00:32.174: D/dalvikvm(2142): Trying to load lib /data/app-lib/com.testandroid-1/libcom.testandroid.LibAndroidBridge.so 0xb0fcfc60
02-13 12:00:32.174: E/dalvikvm(2142): dlopen("/data/app-lib/com.testandroid-1/libcom.testandroid.LibAndroidBridge.so") failed: dlopen failed: cannot locate symbol "rand" referenced by "libcom.testandroid.LibAndroidBridge.so"...
02-13 12:00:32.174: W/dalvikvm(2142): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/testandroid/AriesLib;
02-13 12:00:32.174: D/AndroidRuntime(2142): Shutting down VM
02-13 12:00:32.174: W/dalvikvm(2142): threadid=1: thread exiting with uncaught exception (group=0xb0cb0b20)
02-13 12:00:32.174: E/AndroidRuntime(2142): FATAL EXCEPTION: main
02-13 12:00:32.174: E/AndroidRuntime(2142): Process: com.testandroid, PID: 2142
02-13 12:00:32.174: E/AndroidRuntime(2142): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "rand" referenced by "libcom.testandroid.LibAndroidBridge.so"...
02-13 12:00:32.174: E/AndroidRuntime(2142): at java.lang.Runtime.loadLibrary(Runtime.java:364)

有人知道为什么导入 c++_shared.so 库失败吗?

最佳答案

真正的错误是其他原因:rand() 不存在,因为 Android-21 不兼容。

java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "rand" referenced by

查看此 thread了解更多信息。

建议的修复是在 jni/Application.mk 中降级您的 API,并将其设置为低于 Android-21 的内容。如果您需要 Android-21,那么 Google 实际上建议发送多个 APK 文件。呃。

关于Android NDK 无法加载 libc++_shared.so,获取 "cannot locate symbol ' rand' 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28504875/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com