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

Fatal Exception: java.lang.NoSuchFieldError: zzaCl, at com.google.android.exoplayer2.audio.AudioTrack.processBuffers #2637

Closed
slezadav opened this issue Mar 31, 2017 · 8 comments
Assignees

Comments

@slezadav
Copy link

slezadav commented Mar 31, 2017

Issue description

Crash reported from Crashlytics, potentially device specific.

Reproduction steps

Not known

Link to test content

Do not know exactly, which media was being played during crash

Version of ExoPlayer being used

r2.3.1

Device(s) and version(s) of Android being used

alps HM NOTE 1W , Android 4.2.2
http://specdevice.com/showspec.php?id=6c40-e0e8-82e0-db4272cb4183

### A full bug report captured from the device
Can provide only stacktrace from Crashlytics:
Fatal Exception: java.lang.NoSuchFieldError: zzaCl
       at com.google.android.exoplayer2.audio.AudioTrack.processBuffers(SourceFile:816)
       at com.google.android.exoplayer2.audio.AudioTrack.handleBuffer(SourceFile:779)
       at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.processOutputBuffer(SourceFile:366)
       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(SourceFile:938)
       at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(SourceFile:506)
       at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(SourceFile:2466)
       at android.os.Handler.dispatchMessage(Handler.java:103)
       at android.os.Looper.loop(Looper.java:194)
       at android.os.HandlerThread.run(HandlerThread.java:60)
       at com.google.android.exoplayer2.util.PriorityHandlerThread.run(SourceFile:40)
@andrewlewis andrewlewis self-assigned this Mar 31, 2017
@andrewlewis
Copy link
Collaborator

If you have a proguard map, please could you provide the deobfuscated field name? Thanks.

@slezadav
Copy link
Author

slezadav commented Mar 31, 2017

Unfortunately I dont have access to the original mapping, but assuming the proguard is deterministic I built again from the same commit and probably not much help:

com.google.android.gms.internal.zzaav$zzb -> com.google.android.gms.internal.zzaav$zzb:
com.google.android.gms.internal.zzaav zzaCl -> zzaCl

@andrewlewis
Copy link
Collaborator

This stack trace looks wrong to me: though AudioTrack:779 looks correct for the call to processBuffers, it doesn't make sense for AudioTrack:816 to be do a field access which could cause this. I don't have that specific device available but I wasn't able to reproduce the error on another API 17 device. Is it possible that the map used to get this stack trace in Crashlytics is outdated?

(The ExoPlayer core library doesn't depend on GMS or Firebase so I think the GMS internal package name is spurious/unrelated.)

@slezadav
Copy link
Author

slezadav commented Apr 2, 2017

Fatal Exception: java.lang.NoSuchFieldError: Base_Widget_AppCompat_ActionBar_TabBar
at com.google.android.exoplayer2.audio.AudioTrack.processBuffers(SourceFile:816)
at com.google.android.exoplayer2.audio.AudioTrack.handleBuffer(SourceFile:779)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.processOutputBuffer(SourceFile:366)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(SourceFile:938)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(SourceFile:506)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(SourceFile:2466)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:194)
at android.os.HandlerThread.run(HandlerThread.java:60)
at com.google.android.exoplayer2.util.PriorityHandlerThread.run(SourceFile:40)

@andrewlewis
Copy link
Collaborator

We don't use the support library and some line numbers in the stack trace don't make sense (e.g. ExoPlayerImplInternal:2466 doesn't exist) so I think there's something going wrong with how this is being proguarded/deobfuscated, or a problem with the JVM on that device.

I'll close this for now as I don't think there's anything actionable here, but please reopen if you can find a way to reproduce this or get a different stack trace in ExoPlayer that makes sense. Thanks!

@slezadav
Copy link
Author

slezadav commented Apr 4, 2017

I have different trace from the same line
Fatal Exception: java.lang.InternalError: bad sparse switch magic
at com.google.android.exoplayer2.audio.AudioTrack.processBuffers(SourceFile:816)
at com.google.android.exoplayer2.audio.AudioTrack.handleBuffer(SourceFile:779)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.processOutputBuffer(SourceFile:366)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(SourceFile:938)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(SourceFile:510)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(SourceFile:2466)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:194)
at android.os.HandlerThread.run(HandlerThread.java:60)
at com.google.android.exoplayer2.util.PriorityHandlerThread.run(SourceFile:40)

@slezadav
Copy link
Author

slezadav commented Apr 4, 2017

One more info, all the devices reporting crash on this line are rooted.

@ojw28
Copy link
Contributor

ojw28 commented Apr 4, 2017

As per above, this does not appear to be an ExoPlayer issue. The stack traces do not make sense. They reference line numbers and imply the existence of dependencies like ExoPlayer -> Base_Widget_AppCompat_ActionBar_TabBar that don't exist. If these devices are running a custom Android build, then given what you're seeing it's likely the Android build is broken.

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

No branches or pull requests

3 participants