मैं अपने एंड्रॉइड एप्लिकेशन के लिए पीजेएसआईपी लाइब्रेरी का उपयोग करने की कोशिश कर रहा हूं। मैं इस पुस्तिका के अनुसार pjsua नमूना आवेदन बनाया: https://trac.pjsip.org/repos/wiki/Getting-Started/Androidलाइब्रेरी लोड नहीं कर सकता: reloc_library [1285]: 'rand' का पता नहीं लगा सकता
लेकिन जब नमूना आवेदन लॉन्च कर रहा है, अपवाद से चलाता है:
12-06 15:03:58.043: D/dalvikvm(628): Trying to load lib /data/data/org.pjsip.pjsua2.app/lib/libpjsua2.so 0x4129d980
12-06 15:03:58.064: W/dalvikvm(628): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/pjsip/pjsua2/app/MyApp;
12-06 15:03:58.064: D/AndroidRuntime(628): Shutting down VM
12-06 15:03:58.064: W/dalvikvm(628): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
12-06 15:03:58.083: E/AndroidRuntime(628): FATAL EXCEPTION: main
12-06 15:03:58.083: E/AndroidRuntime(628): java.lang.ExceptionInInitializerError
12-06 15:03:58.083: E/AndroidRuntime(628): at org.pjsip.pjsua2.app.MainActivity.onCreate(MainActivity.java:85)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.Activity.performCreate(Activity.java:4465)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.ActivityThread.access$600(ActivityThread.java:123)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.os.Handler.dispatchMessage(Handler.java:99)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.os.Looper.loop(Looper.java:137)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.ActivityThread.main(ActivityThread.java:4424)
12-06 15:03:58.083: E/AndroidRuntime(628): at java.lang.reflect.Method.invokeNative(Native Method)
12-06 15:03:58.083: E/AndroidRuntime(628): at java.lang.reflect.Method.invoke(Method.java:511)
12-06 15:03:58.083: E/AndroidRuntime(628): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-06 15:03:58.083: E/AndroidRuntime(628): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-06 15:03:58.083: E/AndroidRuntime(628): at dalvik.system.NativeStart.main(Native Method)
12-06 15:03:58.083: E/AndroidRuntime(628): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1285]: 37 cannot locate 'rand'...
12-06 15:03:58.083: E/AndroidRuntime(628): at java.lang.Runtime.loadLibrary(Runtime.java:370)
12-06 15:03:58.083: E/AndroidRuntime(628): at java.lang.System.loadLibrary(System.java:535)
12-06 15:03:58.083: E/AndroidRuntime(628): at org.pjsip.pjsua2.app.MyApp.<clinit>(MyApp.java:235)
यह Appl की तरह लगता है libpjsua2.so लाइब्रेरी लोड नहीं कर सकते हैं। मैंने पहले कभी एनडीके का उपयोग नहीं किया है, इसलिए मेरे पास इस मुद्दे के बारे में कोई विचार नहीं है, कृपया मेरी मदद करें ...
संभावित डुप्लिकेट [एंड्रॉयड के NDK का उपयोग कर mkfifo उपयोग करने के लिए कैसे] (http://stackoverflow.com/questions/27091001/how-to-use-mkfifo-using-androids-ndk)। – jww
[कमजोर प्रतीक] (http://en.wikipedia.org/wiki/Weak_symbol) इस समस्या को हल करने में सक्षम होना चाहिए। लेकिन मुझे विश्वास नहीं है कि वे एंड्रॉइड पर काम करते हैं, भले ही एंड्रॉइड प्रीप्रोसेसर में '__GXX_WEAK__' को परिभाषित करता है। देखें [ओएस एक्स और एंड्रॉइड के बीच साझा लाइब्रेरी में कमजोर फ़ंक्शन को ओवरराइड करने के विभिन्न व्यवहार] (http://stackoverflow.com/q/20196368/608639) और [एंड्रॉइड कमजोर प्रतीकों का समर्थन करता है?] (Http://stackoverflow.com/ क्यू/27935228/६,०८,६३९)। – jww