Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AudioTrack$StreamEventCallback NoClassDefFoundError #8058

Closed
hinditutorpoint opened this issue Oct 8, 2020 · 26 comments
Closed

AudioTrack$StreamEventCallback NoClassDefFoundError #8058

hinditutorpoint opened this issue Oct 8, 2020 · 26 comments
Assignees
Labels

Comments

@hinditutorpoint
Copy link

hinditutorpoint commented Oct 8, 2020

hi sir
i found an error please resolve this also have two more question first
File Url: http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
i we this use this url work fine but this DefaultAudioSinkError alway
i m also same copy demo app
found error

I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
I/zygote:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
I/zygote:     at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
I/zygote:     at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
I/zygote:     at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
I/zygote:     at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
I/zygote:     at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.etc.etutorerp-r11jQYfvYRpnTFXpBLE9ag==/lib/arm, /system/lib, /system/vendor/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)
        at com.google.android.exoplayer2.Renderer[] com.google.android.exoplayer2.DefaultRenderersFactory.createRenderers(android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.text.TextOutput, com.google.android.exoplayer2.metadata.MetadataOutput) (DefaultRenderersFactory.java:321)
        at void com.google.android.exoplayer2.SimpleExoPlayer.<init>(com.google.android.exoplayer2.SimpleExoPlayer$Builder) (SimpleExoPlayer.java:610)
        at com.google.android.exoplayer2.SimpleExoPlayer com.google.android.exoplayer2.SimpleExoPlayer$Builder.build() (SimpleExoPlayer.java:513)
        at boolean com.etc.etutorerp.Live.initPlayer() (Live.java:158)
        at void com.etc.etutorerp.Live.onStart() (Live.java:518)
        at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1341)
        at void android.app.Activity.performStart() (Activity.java:7200)
        at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2920)
        at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
        at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
        at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
        at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
        at void android.os.Looper.loop() (Looper.java:164)
        at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6942)
        at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
        at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
        at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)

2. second question when use firbase video url get this error

second error
E/ExoPlayerImplInternal: Playback error
      com.google.android.exoplayer2.ExoPlaybackException: Source error
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:554)
        at android.os.Handler.dispatchMessage(Handler.java:101)
        at android.os.Looper.loop(Looper.java:164)
        at android.os.HandlerThread.run(HandlerThread.java:65)
     Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 403
        at com.google.android.exoplayer2.ext.cronet.CronetDataSource.open(CronetDataSource.java:480)
        at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:193)
        at com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:764)
        at com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:579)
        at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
        at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1013)
        at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:415)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)

3. When pass sample ads url IntentUtil
Ads url : https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dskippablelinear&correlator=

get another error
W/IMASDK: Invalid internal message, ignoring. Please make sure the Google IMA SDK library is up to date. Message: gmsg://afma.google.com/activityMonitor?type=getPageSignals&sid=57bafb10-a40a-4d95-956d-c54622958455&dt=1602192856893
D/IMASDK: Received js message: adsManager [loaded]
D/IMASDK: Received js message: videoDisplay1 [startTracking]
D/IMASDK: Received js message: videoDisplay1 [load]
D/IMASDK: Received js message: adsManager [contentPauseRequested]
D/IMASDK: Received js message: videoDisplay1 [activate]
D/IMASDK: Received js message: videoDisplay1 [startTracking]
D/IMASDK: Received js message: activityMonitor [getViewability]
D/IMASDK: Sending js message: activityMonitor [viewability]
D/IMASDK: Received js message: displayContainer [showVideo]
D/IMASDK: Received js message: videoDisplay1 [play]
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.etc.etutorerp, PID: 19633
    java.lang.AbstractMethodError: abstract method "void com.google.android.exoplayer2.source.ads.AdsLoader.handlePrepareComplete(int, int)"
        at com.google.android.exoplayer2.source.ads.AdsMediaSource$AdPrepareListener.lambda$onPrepareComplete$0$AdsMediaSource$AdPrepareListener(AdsMediaSource.java:392)
        at com.google.android.exoplayer2.source.ads.-$$Lambda$AdsMediaSource$AdPrepareListener$fKnX3U0AN4mPVLC978gwlh8u4Wo.run(Unknown Source:4)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6942)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
@tonihei
Copy link
Collaborator

tonihei commented Oct 9, 2020

NoClassDefFoundError is usually a sign of build setup problem. Please also see this answer to a similar question.

@tonihei tonihei self-assigned this Oct 9, 2020
@hinditutorpoint

This comment has been minimized.

@hinditutorpoint

This comment has been minimized.

@tonihei
Copy link
Collaborator

tonihei commented Oct 9, 2020

I'm sorry, but don't really understand what you are asking. If you'd like to report an issue, please fill out the issue template completely and explain your problem in more detail. Thanks!

@hinditutorpoint
Copy link
Author

hinditutorpoint commented Oct 9, 2020

sir i we play video get audio sink error
Failed resolution of:

Landroid/media/AudioTrack$StreamEventCallback;
at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean) (DefaultRenderersFactory.java:628)

@hinditutorpoint

This comment has been minimized.

@hinditutorpoint

This comment has been minimized.

@hinditutorpoint

This comment has been minimized.

@tonihei
Copy link
Collaborator

tonihei commented Oct 9, 2020

Which Android version is your device running on?

@hinditutorpoint
Copy link
Author

Samsung Galexy J5 Prime
Oreo

@hinditutorpoint
Copy link
Author

ver 8.0.0

@hinditutorpoint

This comment has been minimized.

@gelin
Copy link

gelin commented Oct 11, 2020

Got the same issue, the Didn't find class "android.media.AudioTrack$StreamEventCallback" when running ExoPlayer 2.12.0 on Android TV emulator with Android 8 (SDK 26) installed. The compileSdkVersion and targetSdkVersion are set to 29, while minSdkVersion is 21.
the StreamEventCallback was added in API 29. Probably, AudioSink doesn't correctly checks the runtime SDK version.
ExoPlayer 2.11.8 has no such issue.

@hinditutorpoint

This comment has been minimized.

@tonihei tonihei closed this as completed Oct 12, 2020
@tonihei
Copy link
Collaborator

tonihei commented Oct 12, 2020

@gelin I have no issue playing video in the ExoPlayer demo app with the Android TV emulator on SDK 26, nor do I have problems on an actual phone on SDK 23. Could you make sure to try a clean build and report detailed reproduction steps if the problem persists?

@tonihei tonihei reopened this Oct 12, 2020
@tonihei tonihei changed the title issue an use firebase file url and ads AudioTrack$StreamEventCallback NoClassDefFoundError Oct 12, 2020
@hinditutorpoint
Copy link
Author

yes sir i am also clean and rebuild project again got same problem.
Video playing perfect but log display audio sink issue and when pass the ads url in IntentUtil got another error mention above.

@gelin
Copy link

gelin commented Oct 12, 2020

@tonihei, @hinditutorpoint points the issue. The video (and audio) in the demo app works correctly on SDK 26 emulator. But this error message about the absence of the android.media.AudioTrack$StreamEventCallback class (with a very long stack trace) appears in the logs (on each playback start). This log message doesn't affect the functionality.

I was confused by the HEVC (hvc1) codec, which looks like not supported by the emulator. I thought this error message in logs is the cause of the HEVC video playback failure.

@tonihei
Copy link
Collaborator

tonihei commented Oct 12, 2020

@krocard Can you have a look to see where this is coming from?

@tonihei tonihei assigned krocard and unassigned tonihei Oct 12, 2020
@hinditutorpoint
Copy link
Author

@gelin but sir i check my real android Oreo phone 8.0 not emulator and when this project run on my old android which is kitkat
crash application.

@krocard
Copy link
Contributor

krocard commented Oct 13, 2020

java.lang.Class<com.google.android.exoplayer2.audio.DefaultAudioSink$StreamEventCallbackV29>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean)

I don't understand how this is possible AudioTrack.StreamEventCallback is only used by StreamEventCallbackV29 as base class:

@RequiresApi(29)
private final class StreamEventCallbackV29 extends AudioTrack.StreamEventCallback {

and StreamEventCallbackV29 is only instantiated by registerStreamEventCallback:
@RequiresApi(29)
private void registerStreamEventCallbackV29(AudioTrack audioTrack) {
if (offloadStreamEventCallbackV29 == null) {
// Must be lazily initialized to receive stream event callbacks on the current (playback)
// thread as the constructor is not called in the playback thread.
offloadStreamEventCallbackV29 = new StreamEventCallbackV29();
}
offloadStreamEventCallbackV29.register(audioTrack);
}

Which is only called if the AudioTrack is offload:
if (isOffloadedPlayback(audioTrack)) {
registerStreamEventCallbackV29(audioTrack);

Which requires API > 29:
private static boolean isOffloadedPlayback(AudioTrack audioTrack) {
return Util.SDK_INT >= 29 && audioTrack.isOffloadedPlayback();
}

And only when so, will StreamEventCallbackV29 be created

Could @MonotonicNonNull force the class to be allocated early?

@MonotonicNonNull private StreamEventCallbackV29 offloadStreamEventCallbackV29;

Or maybe it has to do with an optimisation (Progard?), as the stack trace is missing the call to DefaultAudioTrack constructor.

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
at com.google.android.exoplayer2.audio.AudioSink com.google.android.exoplayer2.DefaultRenderersFactory.buildAudioSink(android.content.Context, boolean, boolean, boolean)

[Internal: This is similar to b/161961414]

@krocard
Copy link
Contributor

krocard commented Oct 13, 2020

I can reproduce on the emulator (API 27).
Here is what I have tried that does not get rid of the inner class StreamEventCallbackV29 loading if API < 29:

  • make it static inner
  • make it a separate top level class instead of an inner class
  • store in an Object reference
  • remove @MonotonicNonNull
  • remove all calls to the class constructor (aka the class is never constructed)
  • add an explicit if (Util.SDK_INT >= 29) around all lines that interact with StreamEventCallbackV29 (aka inilining isOffloadedPlayback)

What worked (no NoClassDefFoundError):

  • remove the class construction AND the reference to the class (that is equivalent to removing the feature, so it's not useful)
  • use an anonymous class to derive AudioTrack.StreamEventCallback !

I will upload a fix. It boils down to instead of using a inner class that derive the callback as it is done now:

@RequiresApi(29)
private final class StreamEventCallbackV29 extends AudioTrack.StreamEventCallback {
private final Handler handler;

To instead use an inner class in a method:

      streamEventCallbackV29 = new AudioTrack.StreamEventCallback(){
      @Override
      public void onDataRequest(AudioTrack track, int size) {

I guess the JVM loads all the classes used (referenced and newed) by a class except for anonymous class? Definitely a puzzling behaviour.

@krocard
Copy link
Contributor

krocard commented Oct 13, 2020

Interestingly, the same pattern that causes problem for StreamEventCallback is used for MediaCodec.OnFrameRenderedListener:
https://github.com/google/ExoPlayer/blob/r2.12.0/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java#L1752-L1754
The difference is that MediaCodec.OnFrameRenderedListener is an interface and not an class.
Thus API specific interfaces can be freely implemented as long as not used in API level where they do not exist.
On the contrary API classes seems to only be safely inherited by anonymous classes.

@hinditutorpoint
Copy link
Author

Got any solution for this issue sir

@krocard
Copy link
Contributor

krocard commented Oct 19, 2020

The issue is fixed by 230f4e5.

@krocard krocard closed this as completed Oct 19, 2020
@krocard
Copy link
Contributor

krocard commented Oct 19, 2020

@hinditutorpoint, in #8058 (comment) you seem to suggest that the issue is causing an application crash on your KitKat device.
Can you confirm that this AudioTrack$StreamEventCallback NoClassDefFoundError indeed crashes your application? In my testing, I have only ever observed a warning log, never an actual crash.
I will update the release note if it is confirm to cause a crash.

@hinditutorpoint
Copy link
Author

Thanks for fix this problem sir

@google google locked and limited conversation to collaborators Dec 19, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

6 participants