Status Update
Comments
sm...@gmail.com <sm...@gmail.com> #2
This is really critical. Every time I disconnect via "cast" my app crashes (or if I start casting with another app) my app crashes in the background because this is used by the cast API.
java.lang.NullPointerException: Attempt to write to field 'java.lang.ref.WeakReference android.support.v4.media.session.MediaSessionCompat$Callback.mSessionImpl' on a null object reference
at android.support.v4.media.session.MediaSessionCompat$MediaSessionImplApi21.setCallback(MediaSessionCompat.java:2305)
at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:267)
at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:255)
at com.google.android.gms.internal.zzxe.zzcb(Unknown Source)
at com.google.android.gms.cast.framework.CastSession.zzbV(Unknown Source)
at com.google.android.gms.cast.framework.CastSession.zza(Unknown Source)
at com.google.android.gms.cast.framework.CastSession$zzb.zzbV(Unknown Source)
java.lang.NullPointerException: Attempt to write to field 'java.lang.ref.WeakReference android.support.v4.media.session.MediaSessionCompat$Callback.mSessionImpl' on a null object reference
at android.support.v4.media.session.MediaSessionCompat$MediaSessionImplApi21.setCallback(MediaSessionCompat.java:2305)
at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:267)
at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:255)
at com.google.android.gms.internal.zzxe.zzcb(Unknown Source)
at com.google.android.gms.cast.framework.CastSession.zzbV(Unknown Source)
at com.google.android.gms.cast.framework.CastSession.zza(Unknown Source)
at com.google.android.gms.cast.framework.CastSession$zzb.zzbV(Unknown Source)
am...@google.com <am...@google.com> #3
Hi,
Request you to provide below information
Please attach your sample android project which reproduces the issue, zip it and share(just to avoid the confusion between your sample code and the one we create to replicate the issue,sample code is requested here).
Explain expected and observed behavior? Attach screen shots for more clarity.
Explain the steps to reproduce the issue with your apk. Provide all necessary information to reproduce the issue.
Note: Please upload the attachments to google drive and share the folder to android-bugreport@google.com, then share the link here.
Request you to provide below information
Please attach your sample android project which reproduces the issue, zip it and share(just to avoid the confusion between your sample code and the one we create to replicate the issue,sample code is requested here).
Explain expected and observed behavior? Attach screen shots for more clarity.
Explain the steps to reproduce the issue with your apk. Provide all necessary information to reproduce the issue.
Note: Please upload the attachments to google drive and share the folder to android-bugreport@google.com, then share the link here.
si...@gmail.com <si...@gmail.com> #4
here you go
https://drive.google.com/drive/folders/0B4FfLhYv65yoVmJKd2c1QkdxMGs?usp=sharing
Expected behavior: don't crash.
Observed: NullPointerException
To reproduce, just run the application on Android API 23+
Expected behavior: don't crash.
Observed: NullPointerException
To reproduce, just run the application on Android API 23+
il...@google.com <il...@google.com>
sm...@gmail.com <sm...@gmail.com> #5
You can also reproduce the "Cast" issue using the UAMP sample which is found here:
https://github.com/googlesamples/android-UniversalMusicPlayer
Just update mobile/build.gradle to use 25.1.0 and the compile/target to 25. You just then need to start casting and then disconnect from cast. You don't even have to play content.
Just update mobile/build.gradle to use 25.1.0 and the compile/target to 25. You just then need to start casting and then disconnect from cast. You don't even have to play content.
aa...@gmail.com <aa...@gmail.com> #6
I am seeing the same on disconnect on Lollipop. This issue was introduced in v25.1.0--it is not an issue in v25.0.1.
12-14 11:39:27.742: E/UncaughtExceptionHandler(2212): Uncaught exception: java.lang.NullPointerException: Attempt to write to field 'java.lang.ref.WeakReference android.support.v4.media.session.MediaSessionCompat$Callback.mSessionImpl' on a null object reference
12-14 11:39:27.774: E/AndroidRuntime(2212): FATAL EXCEPTION: main
12-14 11:39:27.774: E/AndroidRuntime(2212): java.lang.NullPointerException: Attempt to write to field 'java.lang.ref.WeakReference android.support.v4.media.session.MediaSessionCompat$Callback.mSessionImpl' on a null object reference
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.support.v4.media.session.MediaSessionCompat$MediaSessionImplApi21.setCallback(MediaSessionCompat.java:2305)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:267)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:255)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.internal.zzxe.zzcb(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.CastSession.zzbV(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.CastSession.zza(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.CastSession$zzb.zzbV(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.zzf$zza.onTransact(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Binder.transact(Binder.java:499)
12-14 11:39:27.774: E/AndroidRuntime(2212): at zt.a(:com.google.android.gms.DynamiteModulesC:199)
12-14 11:39:27.774: E/AndroidRuntime(2212): at zj.a(:com.google.android.gms.DynamiteModulesC:128)
12-14 11:39:27.774: E/AndroidRuntime(2212): at zy.onTransact(:com.google.android.gms.DynamiteModulesC:122)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Binder.transact(Binder.java:499)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.zzh$zza$zza.zzb(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.CastSession.end(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.Session$zza.end(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.zzq$zza.onTransact(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Binder.transact(Binder.java:499)
12-14 11:39:27.774: E/AndroidRuntime(2212): at aba.a(:com.google.android.gms.DynamiteModulesC:216)
12-14 11:39:27.774: E/AndroidRuntime(2212): at abi.a(:com.google.android.gms.DynamiteModulesC:305)
12-14 11:39:27.774: E/AndroidRuntime(2212): at ace.a(:com.google.android.gms.DynamiteModulesC:61)
12-14 11:39:27.774: E/AndroidRuntime(2212): at acb.onTransact(:com.google.android.gms.DynamiteModulesC:144)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Binder.transact(Binder.java:499)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.internal.zzwv$zza$zza.zza(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.internal.zzwy.onRouteUnselected(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.support.v7.media.MediaRouter$GlobalMediaRouter$CallbackHandler.invokeCallback(MediaRouter.java:2999)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.support.v7.media.MediaRouter$GlobalMediaRouter$CallbackHandler.handleMessage(MediaRouter.java:2946)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Handler.dispatchMessage(Handler.java:102)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Looper.loop(Looper.java:154)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.app.ActivityThread.main(ActivityThread.java:6119)
12-14 11:39:27.774: E/AndroidRuntime(2212): at java.lang.reflect.Method.invoke(Native Method)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
12-14 11:39:27.742: E/UncaughtExceptionHandler(2212): Uncaught exception: java.lang.NullPointerException: Attempt to write to field 'java.lang.ref.WeakReference android.support.v4.media.session.MediaSessionCompat$Callback.mSessionImpl' on a null object reference
12-14 11:39:27.774: E/AndroidRuntime(2212): FATAL EXCEPTION: main
12-14 11:39:27.774: E/AndroidRuntime(2212): java.lang.NullPointerException: Attempt to write to field 'java.lang.ref.WeakReference android.support.v4.media.session.MediaSessionCompat$Callback.mSessionImpl' on a null object reference
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.support.v4.media.session.MediaSessionCompat$MediaSessionImplApi21.setCallback(MediaSessionCompat.java:2305)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:267)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:255)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.internal.zzxe.zzcb(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.CastSession.zzbV(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.CastSession.zza(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.CastSession$zzb.zzbV(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.zzf$zza.onTransact(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Binder.transact(Binder.java:499)
12-14 11:39:27.774: E/AndroidRuntime(2212): at zt.a(:com.google.android.gms.DynamiteModulesC:199)
12-14 11:39:27.774: E/AndroidRuntime(2212): at zj.a(:com.google.android.gms.DynamiteModulesC:128)
12-14 11:39:27.774: E/AndroidRuntime(2212): at zy.onTransact(:com.google.android.gms.DynamiteModulesC:122)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Binder.transact(Binder.java:499)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.zzh$zza$zza.zzb(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.CastSession.end(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.Session$zza.end(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.cast.framework.zzq$zza.onTransact(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Binder.transact(Binder.java:499)
12-14 11:39:27.774: E/AndroidRuntime(2212): at aba.a(:com.google.android.gms.DynamiteModulesC:216)
12-14 11:39:27.774: E/AndroidRuntime(2212): at abi.a(:com.google.android.gms.DynamiteModulesC:305)
12-14 11:39:27.774: E/AndroidRuntime(2212): at ace.a(:com.google.android.gms.DynamiteModulesC:61)
12-14 11:39:27.774: E/AndroidRuntime(2212): at acb.onTransact(:com.google.android.gms.DynamiteModulesC:144)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Binder.transact(Binder.java:499)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.internal.zzwv$zza$zza.zza(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.google.android.gms.internal.zzwy.onRouteUnselected(Unknown Source)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.support.v7.media.MediaRouter$GlobalMediaRouter$CallbackHandler.invokeCallback(MediaRouter.java:2999)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.support.v7.media.MediaRouter$GlobalMediaRouter$CallbackHandler.handleMessage(MediaRouter.java:2946)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Handler.dispatchMessage(Handler.java:102)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.os.Looper.loop(Looper.java:154)
12-14 11:39:27.774: E/AndroidRuntime(2212): at android.app.ActivityThread.main(ActivityThread.java:6119)
12-14 11:39:27.774: E/AndroidRuntime(2212): at java.lang.reflect.Method.invoke(Native Method)
12-14 11:39:27.774: E/AndroidRuntime(2212): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
co...@gmail.com <co...@gmail.com> #7
The defect can be found at `android.support.v4.media.session.MediaSessionCompat.MediaSessionImplApi21#setCallback(Callback, Handler)` in the v25.1.0 of the support libraries.
The `android.support.v4.media.session.MediaSessionCompat#setCallback(Callback, Handler)` method indicates that a null value for the Callback parameter is valid, yet the `MediaSessionImplApi21` implementation attempts to write to a member variable to it.
The `android.support.v4.media.session.MediaSessionCompat#setCallback(Callback, Handler)` method indicates that a null value for the Callback parameter is valid, yet the `MediaSessionImplApi21` implementation attempts to write to a member variable to it.
de...@gmail.com <de...@gmail.com> #8
I also reproduced this issue, who can tell me how to fix it?
su...@google.com <su...@google.com> #9
The fix was already merged. The next release of support lib will have the fix.
co...@gmail.com <co...@gmail.com> #10
Is there a work-around for this issue until the next version of the support library is released? As far as I can tell using any version of mediarouter-v7:25.x.x causes this crash.
Ja...@casaudoumecq.me <Ja...@casaudoumecq.me> #11
com.android.support:mediarouter-v7:25.0.1 is working for me. Try that version again.
ne...@gmail.com <ne...@gmail.com> #12
01-15 09:52:56.838 21662-21662/com.clients.mobile.gen.next.iqueue.provider E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.clients.mobile.gen.next.iqueue.provider, PID: 21662
java.lang.NullPointerException: Attempt to write to field 'java.lang.ref.WeakReference android.support.v4.media.session.MediaSessionCompat$Callback.mSessionImpl' on a null object reference
at android.support.v4.media.session.MediaSessionCompat$MediaSessionImplApi21.setCallback(MediaSessionCompat.java:2305)
at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:267)
at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:255)
at com.google.android.gms.internal.zzxe.zzcb(Unknown Source)
at com.google.android.gms.cast.framework.CastSession.zzbV(Unknown Source)
at com.google.android.gms.cast.framework.CastSession.zza(Unknown Source)
at com.google.android.gms.cast.framework.CastSession$zzb.zzbV(Unknown Source)
at com.google.android.gms.cast.framework.zzf$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:499)
at zt.a(:com.google.android.gms.DynamiteModulesC:199)
at zj.a(:com.google.android.gms.DynamiteModulesC:128)
at zy.onTransact(:com.google.android.gms.DynamiteModulesC:122)
at android.os.Binder.transact(Binder.java:499)
at com.google.android.gms.cast.framework.zzh$zza$zza.zzb(Unknown Source)
at com.google.android.gms.cast.framework.CastSession.end(Unknown Source)
at com.google.android.gms.cast.framework.Session$zza.end(Unknown Source)
at com.google.android.gms.cast.framework.zzq$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:499)
at aba.a(:com.google.android.gms.DynamiteModulesC:216)
at abi.a(:com.google.android.gms.DynamiteModulesC:305)
at ace.a(:com.google.android.gms.DynamiteModulesC:61)
at acb.onTransact(:com.google.android.gms.DynamiteModulesC:144)
at android.os.Binder.transact(Binder.java:499)
at com.google.android.gms.internal.zzwv$zza$zza.zza(Unknown Source)
at com.google.android.gms.internal.zzwy.onRouteUnselected(Unknown Source)
at android.support.v7.media.MediaRouter$GlobalMediaRouter$CallbackHandler.invokeCallback(MediaRouter.java:2900)
at android.support.v7.media.MediaRouter$GlobalMediaRouter$CallbackHandler.handleMessage(MediaRouter.java:2847)
at android.os.Handler.dispatchMessage(Handler.java:102)
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)
Process: com.clients.mobile.gen.next.iqueue.provider, PID: 21662
java.lang.NullPointerException: Attempt to write to field 'java.lang.ref.WeakReference android.support.v4.media.session.MediaSessionCompat$Callback.mSessionImpl' on a null object reference
at android.support.v4.media.session.MediaSessionCompat$MediaSessionImplApi21.setCallback(MediaSessionCompat.java:2305)
at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:267)
at android.support.v4.media.session.MediaSessionCompat.setCallback(MediaSessionCompat.java:255)
at com.google.android.gms.internal.zzxe.zzcb(Unknown Source)
at com.google.android.gms.cast.framework.CastSession.zzbV(Unknown Source)
at com.google.android.gms.cast.framework.CastSession.zza(Unknown Source)
at com.google.android.gms.cast.framework.CastSession$zzb.zzbV(Unknown Source)
at com.google.android.gms.cast.framework.zzf$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:499)
at zt.a(:com.google.android.gms.DynamiteModulesC:199)
at zj.a(:com.google.android.gms.DynamiteModulesC:128)
at zy.onTransact(:com.google.android.gms.DynamiteModulesC:122)
at android.os.Binder.transact(Binder.java:499)
at com.google.android.gms.cast.framework.zzh$zza$zza.zzb(Unknown Source)
at com.google.android.gms.cast.framework.CastSession.end(Unknown Source)
at com.google.android.gms.cast.framework.Session$zza.end(Unknown Source)
at com.google.android.gms.cast.framework.zzq$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:499)
at aba.a(:com.google.android.gms.DynamiteModulesC:216)
at abi.a(:com.google.android.gms.DynamiteModulesC:305)
at ace.a(:com.google.android.gms.DynamiteModulesC:61)
at acb.onTransact(:com.google.android.gms.DynamiteModulesC:144)
at android.os.Binder.transact(Binder.java:499)
at com.google.android.gms.internal.zzwv$zza$zza.zza(Unknown Source)
at com.google.android.gms.internal.zzwy.onRouteUnselected(Unknown Source)
at android.support.v7.media.MediaRouter$GlobalMediaRouter$CallbackHandler.invokeCallback(MediaRouter.java:2900)
at android.support.v7.media.MediaRouter$GlobalMediaRouter$CallbackHandler.handleMessage(MediaRouter.java:2847)
at android.os.Handler.dispatchMessage(Handler.java:102)
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)
ne...@gmail.com <ne...@gmail.com> #13
I have tried com.android.support:mediarouter-v7:25.0.1 and com.android.support:mediarouter-v7:25.1.0 both are crashing
ne...@gmail.com <ne...@gmail.com> #14
I am using compile 'com.android.support:mediarouter-v7:25.1.0'
compile 'com.google.android.gms:play-services-cast-framework:10.0.1' and still crashing
compile 'com.google.android.gms:play-services-cast-framework:10.0.1' and still crashing
ne...@gmail.com <ne...@gmail.com> #15
Is there a work-around for this issue until the next version of the support library is released?
md...@gmail.com <md...@gmail.com> #17
I've built the support library with the fix myself, works fine
ri...@gmail.com <ri...@gmail.com> #18
In addition to reverting mediarouter back to 25.0.1, I also needed to revert appcompat-v7:25.0.1
The crash has gone away now.
The crash has gone away now.
ru...@gmail.com <ru...@gmail.com> #19
[Comment deleted]
mr...@gmail.com <mr...@gmail.com> #20
What is the solution for the interim? This is really annoying!
ru...@gmail.com <ru...@gmail.com> #21
[Comment deleted]
ar...@gmail.com <ar...@gmail.com> #22
[Comment deleted]
su...@google.com <su...@google.com> #23
[Comment deleted]
ar...@gmail.com <ar...@gmail.com> #24
[Comment deleted]
Description
Version used: 25.1.0
Devices/Android versions reproduced on:
LGE Nexus 5X on Android 7.1.1
in class MediaSessionImplApi21
@Override
public void setCallback(Callback callback, Handler handler) {
MediaSessionCompatApi21.setCallback(mSessionObj,
callback == null ? null : callback.mCallbackObj, handler);
callback.mSessionImpl = new WeakReference<MediaSessionImpl>(this);
}
if setCallback() is called with a null callback BOOM!