Business requirement:
Developing mobile app for making calls and sending messages using PJSIP for platforms Android, iOS and Windows using Xamarin.
Steps taken:
Android:
- Build PJSIP for Android (.so file).
- Created native lib (.AAR) for Android.
- Created Xamarin.Android Java binading library by following steps mentioned in https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/binding-an-aar/
- Created the respective folders (lib->arm64-v8a) for keeping .so file in .apk.
Problem:
Sample code snippet in Xamarin.Android:
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
Java.Lang.JavaSystem.LoadLibrary("pjsua2");
Account obj = new Account();
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
Getting the following run time error on statement:
(Java.Lang.JavaSystem.LoadLibrary("pjsua2"));:
Unhandled Exception:
Java.Lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "freeifaddrs"
referenced by "/data/app/PJSIPForAndroid.Android-1/lib/arm64/libpjsua2.so"... occurred
This error is coming specifically on Mi and LeTv phones running android 6.0.1 and Samsung Tablet running android kitkat 4.4.