0
votes

I'm trying to add a native dialog over a scene to play a video with exoplayer. So far I've managed to show the dialog correctly but when I'm starting calling exoplayer stuff I get this exception in the logcat :

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/eppz/plugins/DemoPlayer; at com.eppz.plugins.EPPZ_DialogFragment.preparePlayer(EPPZ_DialogFragment.java:96) at com.eppz.plugins.EPPZ_DialogFragment.onCreateView(EPPZ_DialogFragment.java:87) at android.app.Fragment.performCreateView(Fragment.java:2352) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:995) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171) at android.app.BackStackRecord.run(BackStackRecord.java:815) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578) at android.app.FragmentManagerImpl$1.run(FragmentManager.java:483) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.ClassNotFoundException: com.eppz.plugins.DemoPlayer at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742) at java.lang.ClassLoader.loadClass(ClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at com.eppz.plugins.EPPZ_DialogFragment.preparePlayer(EPPZ_DialogFragment.java:96) at com.eppz.plugins.EPPZ_DialogFragment.onCreateView(EPPZ_DialogFragment.java:87) at android.app.Fragment.performCreateView(Fragment.java:2352) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:995) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171) at android.app.BackStackRecord.run(BackStackRecord.java:815) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578) at android.app.FragmentManagerImpl$1.run(FragmentManager.java:483) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/exoplayer/ExoPlayer$Listener; at com.eppz.plugins.EPPZ_DialogFragment.preparePlayer(EPPZ_DialogFragment.java:96) at com.eppz.plugins.EPPZ_DialogFragment.onCreateView(EPPZ_DialogFragment.java:87) at android.app.Fragment.performCreateView(Fragment.java:2352) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:995) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171) at android.app.BackStackRecord.run(BackStackRecord.java:815) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578) at android.app.FragmentManagerImpl$1.run(FragmentManager.java:483) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.exoplayer.ExoPlayer$Listener" on path: DexPathList[[zip file "/data/app/com.eppz.plugins.alert-1/base.apk"],nativeLibraryDirectories=[/data/app/com.eppz.plugins.alert-1/lib/arm, /data/app/com.eppz.plugins.alert-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:380) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at com.eppz.plugins.EPPZ_DialogFragment.preparePlayer(EPPZ_DialogFragment.java:96) at com.eppz.plugins.EPPZ_DialogFragment.onCreateView(EPPZ_DialogFragment.java:87) at android.app.Fragment.performCreateView(Fragment.java:2352) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:995) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171) at android.app.BackStackRecord.run(BackStackRecord.java:815) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578) at android.app.FragmentManagerImpl$1.run(FragmentManager.java:483) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

I've just added a texture view and added exoplayer in my android part just like if it was a normal project.

I've no idea of what I can add so if you need more information feel free to ask :) Any Idea ?

Regards,

1
Hi, have you figured out the solution for this yet? - Siddharth-Verma
Sure, no problem. But by any chance, is ExoPlayer getting inherited by AppCompatActivity? - Siddharth-Verma
I'm not sure to understand your question. Do you mean getting access to Exoplayer directly through your activity thanks to an AppCompat inheritance? this would be conviennient but Exoplayer is an independant component and it's not included in app compat (last time I've checked). You will have to declare Exoplayer as a dependency according to this github.com/google/ExoPlayer - user1796260
Ok, I think I got it. I saw the repo and found out that ExoPlayer is NOT extending AppCompatActivity. My situation is somewhat different because I have a class A that extends AppCompatActivity. When I make a library of it and try to get Class A in unity3d, I get a NoClassDefFound Error. If i remove this implementation, then I am able to find the class A. But I want with Class A extending AppCompatActivity. - Siddharth-Verma
that's weird it should be working, how do you make a library of it? Do you target the same sdk version in unity and in your library (got an issu from that once). - user1796260

1 Answers

0
votes

You have to add a compiled version of ExoPlayer as an .aar or a .jar in your Unity project and it will work correctly.