所以我创建了自己的类,它扩展了minicontrollerfragment
:
public class CastControllingFragment extends MiniControllerFragment
{
@Override
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle)
{
View view = super.onCreateView(layoutInflater, viewGroup, bundle);
if (view != null) {
FrameLayout.LayoutParams frameLayoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
view.setLayoutParams(frameLayoutParams);
}
return view;
}
public static void show(FragmentActivity activity) {
FragmentManager fragmentManager = activity.getSupportFragmentManager();
if (fragmentManager.findFragmentById(R.id.castMiniController) == null)
{
View rootView = activity.findViewById(R.id.fragment_container);
if (rootView instanceof ViewGroup)
{
fragmentManager.beginTransaction().add(R.id.fragment_container, new CastControllingFragment()).commit();
}
}
}
}
我实例化了它,并将它添加到活动
的onresume
回调中的片段事务中:
@Override
protected void onResume() {
CastControllingFragment.show(this);
super.onResume();
}
这是活动
的布局,FrameLayout
作为我的片段的容器:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</FrameLayout>
</RelativeLayout>
java.lang.runtimeException:无法恢复活动java.lang.nullpointerException:试图从位于Android.app.activitythread.performResumeActivit(activitythread.java:3400)位于Android.app.activitythread.java:3440)位于Android.app.activitythread.handleresumeActivity(activitythread.java:3440)位于Android.app.activitythread.handlelaunchActivity(ler.DispatchMessage(handler.java:102),android.os.looper.loop(looper.java:154),android.app.activitythread.main(activitythread.java:6077),java.lang.reflect.Method.invoke(原生方法),com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:755),com.android.internal.os.zygoteinit.main
原因:java.lang.nullPointerException:试图从com.google.android.gms.cast.framework.media.widget.minicontrollerfragment.zza(未知来源)com.google.android.gms.cast.framework.media.widget.minicontrollerfragment.oncreateview(未知来源)com.google.android.gms.framework.media.widget.minicontrollerfragment.oncreateview(未知来源)在Android.support.v4.app.fragmentManager.java:1113),在Android.support.v4.app.backStackRecord.run(fragmentManager.java:1295),在Android.support.v4.app.backStackRecord.run(backStackRecord.java:801),在Android.support.v4.app.fragmentManagerimpl.execPendingActhtml" target="_blank">ions(FragmentManager.java:1682),在7.app.appcomp在Android.app.activity.performResume(activity.java:175),在Android.app.activity.performResume(activity.java:6792),在Android.app.activityThread.performResumeActivity(activityThread.java:3377),在Android.app.activityThread.handleresumeActivity(activityThread.java:3440), 在Android.app.activitythread.HandleLaunchActivity(activitythread.java:2713) 在Android.app.activitythread.-Wrap12(activitythread.java) 在Android.app.activitythread$h.handleMessage(activitythread.java:1460) 在Android.os.handler.DispatchMessage(Handler.java:102) 在Android.os.looper.loop(looper.java:154) 在Android.app.activitythread.main(activitythread.java:6077) 在java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:865) 在com.android.internal.os.zygoteinit.main(zygoteinit.java:755)
最新的Cast SDK有一个变化,使其与旧版本的Google Play服务不兼容(崩溃)。不幸的是,当使用最新的cast SDK和过时的GPS(或在模拟器上)时,即使是cast示例应用程序也会崩溃。在这里讨论了这个问题:https://github.com/googlecast/castvideo-android/issues/12
解决方案是在初始化任何强制转换组件之前检查谷歌Play服务版本,包括迷你控制器(即,您不能只是将迷你控制器片段放入xml布局文件中--您要么必须动态膨胀它,要么有两个布局文件--一个有迷你控制器,一个没有迷你控制器)。
检查GPS版本的代码:
GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
int resultCode = apiAvailability.isGooglePlayServicesAvailable(context);
isGPSAvailable = (resultCode == ConnectionResult.SUCCESS);
>
创建单独的xml布局文件,并在活动中填充适当的文件。oncreate
:
setContentView(isGPSAvailable ? R.layout.activity_main_with_controller : R.layout.activity_main_without_controller);
在布局中创建viewstub
,指向minicontrollerfragment
,并仅在有播放服务时才对其进行膨胀。
活动布局:
<ViewStub
android:id="@+id/cast_minicontroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout="@layout/cast_mini_controller_fragment"
/>
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/castMiniController"
class="com.google.android.gms.cast.framework.media.widget.MiniControllerFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
ViewStub miniControllerStub = (ViewStub) findViewById(R.id.cast_minicontroller);
if (isGPSAvailable) {
miniControllerStub.inflate();
}
在Corda 3.3中,我定义了以下流程: 当我的节点执行此流时,我收到以下异常。原因是什么?
我在尝试写入谷歌商店时得到一个IOException 堆栈跟踪已连接 代码如下 我正在使用App Engine SDK 1.6.4 谢谢
但是,该方法(authContext.AcquireTokenAsync)与其他参数(如客户端id等)很好地配合使用,如下所示。result=await authContext.AcquireTokenSilentAsync(ResourceId,clientId); UWP是否对具有ClientCredential(clientid,key)的AuthContext.AcquireTokenSi
问题内容: 这可能有些琐碎,但我希望获得一些帮助。 我得到: 做的时候: 谁能告诉我原因是什么? 问题答案: 在Java EE受管上下文中,获取对与EntityManager关联的EntityTransaction实例的引用是非法的。从EntityManager.getTransaction()的Java EE API文档中: 返回资源级的EntityTransaction对象。EntityTra
我正在尝试使用Jprofiler的离线分析API将Jprofiler 8.1.4与jenkins集成。下面是写入的程序 > 开始JProfiler录制。 保存快照。 停止JProfiler录制。 导入java。io。文件导入java。io。IOException; 公共类TestJenJPIntegration{public static Connection connObj=null;publi
这是我的客户端代码 这是我的Rest控制器代码: 如果我在调用后使用 String.class 作为返回类型,则相同的代码也有效。但不是响应实体类。我做错了什么,如果我需要客户端也相同的响应实体