NoSuchMethodError while running on android device
I have got the corresponding compiled jniLibs for my android phone (arm64-v8a) and I want to run libvlc. It is the lib folder of the output built apk whose source was cloned from your git repo.
However app exits constantly and I get the following stacktrace:
JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoSuchMethodError no static method "Lorg/videolan/libvlc/Media;.createAudioTrackFromNative(Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;Ljava/lang/String;II)Lorg/videolan/libvlc/interfaces/IMedia$Track;"
java_vm_ext.cc:542] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:-2)
java_vm_ext.cc:542] at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.String) (Runtime.java:1014)
java_vm_ext.cc:542] at void java.lang.System.loadLibrary(java.lang.String) (System.java:1669)
java_vm_ext.cc:542] at void org.videolan.libvlc.LibVLC.loadLibraries() (LibVLC.java:164)
java_vm_ext.cc:542] at void org.videolan.libvlc.LibVLC.<init>(android.content.Context, java.util.List) (LibVLC.java:54)
java_vm_ext.cc:542] at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:7232)
java_vm_ext.cc:542] at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:7221)
java_vm_ext.cc:542] at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1272)
java_vm_ext.cc:542] at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2971)
java_vm_ext.cc:542] at android.app.Activity android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions, android.content.Intent) (ActivityThread.java:3126)
java_vm_ext.cc:542] at void android.app.servertransaction.LaunchActivityItem.execute(android.app.ClientTransactionHandler, android.os.IBinder, android.app.servertransaction.PendingTransactionActions) (LaunchActivityItem.java:78)
java_vm_ext.cc:542] at void android.app.servertransaction.TransactionExecutor.executeCallbacks(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:108)
java_vm_ext.cc:542] at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:68)
java_vm_ext.cc:542] at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1846)
java_vm_ext.cc:542] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106)
java_vm_ext.cc:542] at void android.os.Looper.loop() (Looper.java:201)
java_vm_ext.cc:542] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6882)
java_vm_ext.cc:542] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
java_vm_ext.cc:542] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:547)
java_vm_ext.cc:542] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:873)
java_vm_ext.cc:542]
java_vm_ext.cc:542] in call to NewGlobalRef
java_vm_ext.cc:542] from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader)
java_vm_ext.cc:542] "main" prio=5 tid=1 Runnable
java_vm_ext.cc:542] | group="main" sCount=0 dsCount=0 flags=0 obj=0x799893c0 self=0x7869414c00
I've confirmed that IMedia Track and createAudioTrackFromNative exist on the corresponding files.
Steps that i have already tried without any luck:
- Add Proguard rules to keep intact the names -keep class org.videolan.libvlc.Media.* { *;} -keepclassmembers , -keepclassmembernames minifyEnabled = false etc.
2.Build libvlc inside my android project where I got other build errors. Maybe I have to choose specific files/folders from the origin project to add to my current project which is very time consuming procedure.
3.Use same options like compileSdkVersion, builtToolsVersion,minSdkVersion as your git repo.
I'm asking for your help because I've been trying for 5 days to run correctly the library.
Thank you,