【发布时间】:2020-03-06 22:57:12
【问题描述】:
我们的一些用户在连接到 Chromecast 接收器时遇到问题。当他们从可用设备列表中选择应用程序中的 CC 设备时,应用程序崩溃。这是崩溃的堆栈跟踪,但 Google 的 SDK 似乎非常神秘,以至于我们不知道实际代码在调用什么。
Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method 'void com.google.android.gms.internal.cast.zzlp.zzhv()' on a null object reference
at com.google.android.gms.internal.cast.zzmd.zza + 3(zzmd.java:3)
at com.google.android.gms.internal.cast.zzmw.zze + 2519(zzmw.java:2519)
at com.google.android.gms.internal.cast.zzlg$zzb.zzjd + 22(zzlg.java:22)
at com.google.android.gms.internal.cast.zzlg$zzb.zzjf + 40(zzlg.java:40)
at com.google.android.gms.internal.cast.zzlg$zzb.zzje + 25(zzlg.java:25)
at com.google.android.gms.internal.cast.zzlg$zzb.zzjg + 41(zzlg.java:41)
at com.google.android.gms.internal.cast.zzbc.zzb + 21(zzbc.java:21)
at com.google.android.gms.internal.cast.zzba.onSessionResuming + 25(zzba.java:25)
at com.google.android.gms.cast.framework.zzag.zzb + 35(zzag.java:35)
at com.google.android.gms.cast.framework.zzz.dispatchTransaction + 37(zzz.java:37)
at com.google.android.gms.internal.cast.zza.onTransact + 13(zza.java:13)
at android.os.Binder.transact + 675(Binder.java:675)
at kk.b + 13(kk.java:13)
at sf.b + 28(sf.java:28)
at sr.b + 31(sr.java:31)
at ss.a + 89(ss.java:89)
at rb.b + 8(rb.java:8)
at st.handleMessage + 12(st.java:12)
at android.os.Handler.dispatchMessage + 108(Handler.java:108)
at zy.dispatchMessage + 5(zy.java:5)
at android.os.Looper.loop + 216(Looper.java:216)
at android.app.ActivityThread.main + 7625(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 524(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main + 987(ZygoteInit.java:987)
以下是有关 SDK 和版本的更多信息: 项目 Android 版本:
compileSdk: 28
buildTools: "28.0.3"
minSdk : 21
targetSdk : 28
CC 的依赖项:
com.google.android.gms:play-services-cast-framework:17.1.0
androidx.mediarouter:mediarouter:1.1.0
我们使用带有 koin 和 livedata 的 androidx 扩展(Jetpack):
implementation "org.koin:koin-android:1.0.2"
implementation "org.koin:koin-androidx-viewmodel:1.0.2"
implementation "org.koin:koin-androidx-scope:1.0.2"
implementation "androidx.core:core-ktx:1.1.0"
implementation "androidx.lifecycle:lifecycle-extensions:2.1.0"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0"
implementation "androidx.lifecycle:lifecycle-livedata:2.1.0"
我应该注意到堆栈跟踪源自 kk.java 类,但其他设备有另一个名称,如 lp.java 或 ke.java。这很可能是因为不同的 Google play-services 实现。
任何帮助将不胜感激:-)
【问题讨论】:
-
s the app crashes如果您发现NullPointerException或在使用前检查null,则应用不会崩溃。 -
@blackapps 他没有直接调用代码,那么他应该如何捕捉 NPE?
标签: android casting nullpointerexception crash chromecast