Search code examples
javaandroidpjsiptelephony

Android: PjSIP - no static method "SwigDirector_AudioMediaPlayer_onEof"


I'm trying to integrate PJSIP into an android project. I build PJSIP and imported the classes into my project. But I keep running into this error only on some devices.

java.lang.NoSuchMethodError: no static method "Lorg/pjsip/pjsua2/pjsua2JNI;.SwigDirector_AudioMediaPlayer_onEof(Lorg/pjsip/pjsua2/AudioMediaPlayer;)Z"

After further investigation, I found that the class in context has a method called SwigDirector_AudioMediaPlayer_onEof2, but not SwigDirector_AudioMediaPlayer_onEof. Does anyone have any ideas?

I will provide more info on demand, I'm new to PJSIP therefor I don't know what kind of information we need to debug this one.

PS: I don't think it's related to obfuscated code. I tried this without success.

-keep class org.pjsip.pjsua2** {*;}

Thanks so much in advance!


Solution

  • Because of you're building pjsip and changing only .so file instead .so & classes.

    go to $PJSIP-MAIN/pjsip-apps/src/swig/java/android/pjsua2/src/main/java

    copy all java classes (actually it is pjsua2 package)

    and paste them properly into to your project (remove old one)