此处我提供错误,而编译' imsdroid ':
Native code library failed to load.
dlopen failed: library "/data/data/org.doubango.imsdroid/lib/libtinyWRAP.so" not found
Process: org.doubango.imsdroid, PID: 9195
> java.lang.UnsatisfiedLinkError: Native method not found org.doubango.tinyWRAP.tinyWRAPJNI.swig_module_init:()V
> at org.doubango.tinyWRAP.tinyWRAPJNI.swig_module_init(Native Method)
> at org.doubango.tinyWRAP.tinyWRAPJNI.<clinit>(tinyWRAPJNI.java:554)
> at org.doubango.tinyWRAP.XcapCallback.<init>(XcapCallback.java:0)
> at org.doubango.imsdroid.Services.Impl.XcapService$MyXcapCallback.<init>(XcapService.java:0)
> at org.doubango.imsdroid.Services.Impl.XcapService.<init>(XcapService.java:93)
> at org.doubango.imsdroid.Services.Impl.ServiceManager.<clinit>(ServiceManager.java:91)
> at org.doubango.imsdroid.Main.<init>(Main.java:132)
> at java.lang.Class.newInstanceImpl(Native Method)
> at java.lang.Class.newInstance(Class.java:1208)
> at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
> at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
> at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)
> at android.app.ActivityThread.access$800(ActivityThread.java:166)
> at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
> at android.os.Handler.dispatchMessage(Handler.java:102)
> at android.os.Looper.loop(Looper.java:136)
> at android.app.ActivityThread.main(ActivityThread.java:5584)
> at java.lang.reflect.Method.invokeNative(Native Method)
> at java.lang.reflect.Method.invoke(Method.java:515)
> at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
> at dalvik.system.NativeStart.main(Native Method)
有人可以给我一些建议来克服这个错误吗?
答案 0 :(得分:0)
您的应用程序尝试加载本机库,检查此文件是否存在。这个问题最常出现是因为库不存在,或者JVM无法定位。这些Exception类的结构就在这里,
public class UnsatisfiedLinkErrorExample {
// Define a method that is defined externally.
native void CFunction();
// Load an external library, called "clibrary".
static {
System.loadLibrary("clibrary");
}
public static void main(String argv[]) {
UnsatisfiedLinkErrorExample example = new UnsatisfiedLinkErrorExample();
example.CFunction ();
}
}
有关详细信息,请参阅此处Exception
答案 1 :(得分:0)
IMSDroid使用Doubango后端支持库作为JNI Lib依赖项。 您必须按照步骤Building Doubango在Linux计算机上设置Doubango编译,以生成libTinyWRAP.so
这有点棘手,因为我最初对linux make文件等的了解并不多,所以我已经做了整整一年的工作。说明和文档也很有限。因此,如果您是初学者,则需要进行很多不眠之夜和在线咨询,然后才能按照自己的意愿进行工作。
毫无疑问,IMSDroid稳定且可以正常运行,并且功能强大且相当可靠。 Doubango库也很不错,但是没有任何具体文档。 即使在今天,与进行视频通话仍然是一回事!
您看到的此错误显然是因为libTinyWRAP.so文件不在应有的文件夹中,并且在安装应用程序时,此库未复制到设备上所需的lib文件夹中。
在Android Studio中使用Shift + Ctrl + F,然后寻找loadLibrary
,它应该在android-ngn-stack内部或某些Engine.java
或NgnEngine.java
内部。您的错误来自那里。