我在我的应用程序中使用强制转换功能。它工作正常但突然间我可以看到Play商店控制台上崩溃次数的增加。
我正在按照指南中的定义正确初始化CastContext。此外,我在调用此方法之前检查设备是否兼容CastContext.getSharedInstance(context)
所以这不应该是一个问题。
即使是使用或不使用google-play-services的模拟器,我也无法重现此崩溃。
任何帮助将不胜感激。
崩溃:
致命异常:java.lang.RuntimeException:无法启动活动ComponentInfo {...。activity.TVActivityPhone}: java.lang.RuntimeException:com.google.android.gms.dynamite.DynamiteModule $ zza:远程加载失败。没有发现本地回退。在Android.app.A活动中的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2677)android.app.A活动。活动(活动传递。) .ActivityThread $ H.handleMessage(ActivityThread.java:1584)在android.app.Loper.loop(Looper.java:194)的android.app.Handler.dispatchMessage(Handler.java:111)android.app.ActivityThread。 main(ActivityThread.java:5877)位于java.lang.reflect.Method.invoke(Method.java)java.lang.reflect.Method.invoke(Method.java:372)的com.android.internal.os.ZygoteInit com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)中的$ MethodAndArgsCaller.run(ZygoteInit.java:1020)由java.lang.RuntimeException引起:com.google.android.gms.dynamite.DynamiteModule $ zza:远程加载失败。没有发现本地后备。
代码我在条件中收到错误,如果条件意味着,它与Google Play服务可用性无关。
if (googlePlayServicesVerified(context)) { // checking (result==ConnectionResult.SUCCES)
Log.d("TAG", "instantiated");
castContext = CastContext.getSharedInstance(context);
} else {
Log.e(TAG, "FAILED");
}
提交谷歌的错误
https://issuetracker.google.com/issues/65359941
**更新** 检查这两个问题:
https://issuetracker.google.com/issues/65359941 https://issuetracker.google.com/issues/79405933
临时解决方案在我的回答中。
答案 0 :(得分:3)
这是临时解决方案。
1)您的应用应始终在使用任何Cast API之前检查GPS版本
2)允许CastContext.getSharedInstance()失败。可能抛出/捕获异常(或者返回null)。
3)确保如果炸药模块无法加载,您不会破坏任何东西。有些UI小部件是隐式初始化的,它们调用CastContext.getSharedInstance(),例如MiniControllerFragment。如果炸药无法加载,你应该避免让它崩溃。
"http://localhost:8000/top?page=1 div.infinite-scroll"
答案 1 :(得分:-1)
当播放服务过期时(主要是运行API 24的模拟器),我遇到了这个问题。这对我有用:
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
int resultCode = googleApiAvailability.isGooglePlayServicesAvailable(this);
if (resultCode == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED) {
googleApiAvailability.getErrorDialog(this, resultCode, 1000).show();
return;
}
startApp();
我在Activity中运行此代码,检查是否应该启动MainActivity