我在我的应用程序中使用强制转换功能.它工作正常但突然间我可以看到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:远程加载失败.没有发现本地回退.
代码我在条件中收到错误,如果条件意味着,它不是关于谷歌播放服务的可用性.
if (googlePlayServicesVerified(context)) { // checking (result==ConnectionResult.SUCCES)
Log.d("TAG", "instantiated");
castContext = CastContext.getSharedInstance(context);
} else {
Log.e(TAG, "FAILED");
}
Run Code Online (Sandbox Code Playgroud)
提交给谷歌的bug:
https://issuetracker.google.com/issues/65359941
**更新**检查以下两个问题:
https://issuetracker.google.com/issues/65359941 https://issuetracker.google.com/issues/79405933
临时解决方案在我的回答中.
正如标题所示,CastContext.getSharedInstance(Context)现已弃用:
getSharedInstance(Context context):此方法已弃用。当 Cast SDK 无法加载内部 Cast 模块时,请使用 getSharedInstance(Context, Executor) 来处理异常。 https://developers.google.com/android/reference/com/google/android/gms/cast/framework/CastContext
指定 Executor 并返回 CastContext 的正确方法是什么?我让它像这样工作,但我想知道这是否是最好的方法:
CastContext
.getSharedInstance(context, Executors.newSingleThreadExecutor())
.addOnSuccessListener(castContext -> {
//do something with castContext
})
.addOnFailureListener(exception -> {
//throw exception
});
Run Code Online (Sandbox Code Playgroud) 在 Android 项目中添加 Bitmovin Cast 后,我在不同的设备上遇到了很多相同的问题。
此解决方案没有帮助。
GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(getContext())
Run Code Online (Sandbox Code Playgroud)
- 返回 0(成功)
但应用程序崩溃。
Caused by java.lang.RuntimeException: com.google.android.gms.dynamite.DynamiteModule$LoadingException: No acceptable module found. Local version is 0 and remote version is 0.
at com.google.android.gms.internal.cast.zze.zzf(Unknown Source:51)
at com.google.android.gms.internal.cast.zze.zza(Unknown Source:1)
at com.google.android.gms.cast.framework.CastContext.(Unknown Source:37)
at com.google.android.gms.cast.framework.CastContext.getSharedInstance(Unknown Source:6)
at com.bitmovin.player.BitmovinPlayer.(SourceFile:106)
at com.bitmovin.player.BitmovinPlayer.(SourceFile:82)
at com.bitmovin.player.BitmovinPlayer.(SourceFile:71)
at com.bitmovin.player.BitmovinPlayerView.(SourceFile:134)
at com.bitmovin.player.BitmovinPlayerView.(SourceFile:120)
Run Code Online (Sandbox Code Playgroud)
所以,谷歌播放服务版本是可以的。
android google-play-services android-cast-api google-cast-sdk
我正在学习Android的转换api,我被困在这个部分:
mMediaRouteSelector = new MediaRouteSelector.Builder()
.addControlCategory(CastMediaControlIntent.categoryForCast("YOUR_APPLICATION_ID"))
.build();
Run Code Online (Sandbox Code Playgroud)
我在哪里可以找到它APPLICATION_ID,它是什么?