【发布时间】:2020-09-16 08:42:07
【问题描述】:
我正在通过 android ndk 使用 pjsip 库。我使用 Android NDK 16 编译 pjsip。一位用户(HTC One,Android 5.0.2)在尝试启动我们的项目时遇到了很多崩溃。这是错误:
Fatal Exception: java.lang.UnsatisfiedLinkError
dlopen failed: cannot locate symbol "stdin" referenced by "libpjsua2.so"...
... .PjSipApp.<clinit>
在项目中,我们有 4 个 abis 的 .so 文件,如 google android ndk 官方文档中所述:arm64-v8a、armeabi-v7a、x86、x86_64。 这是我在代码中加载库的方式:
public class PjSipApp {
private static final String TAG = "Pjsua-PjSipApp";
static {
try {
System.loadLibrary("openh264");
System.loadLibrary("yuv");
} catch (UnsatisfiedLinkError ignore) {
}
System.loadLibrary("pjsua2");
Log.v(TAG, "LibraryLoaded");
}...
所以System.loadLibrary("pjsua2"); 抛出这个UnsatisfiedLinkError。
也许有人知道,这是什么原因?
【问题讨论】:
-
我有 32 位 .so 文件。你知道如何创建 64 位 .so 文件吗?在此先感谢:)
标签: android android-ndk pjsip pjsua2