Android getintent()方法崩溃
我正在用基本API 11开发一个Android应用程序。我一直在使用intent在活动之间发送数据,并使用getintent()getextras()获取数据。主要是,我一直在API 23中进行测试,我在API 15中运行了相同的测试,它崩溃了。即使是一个简单的getintent.hasextra也会崩溃。这是兼容性问题吗?我还添加了if getintent.getextras=空,但这也帮不了我。有人能帮我解决这个问题吗 多谢各位 代码: 活动1:Android getintent()方法崩溃,android,android-intent,Android,Android Intent,我正在用基本API 11开发一个Android应用程序。我一直在使用intent在活动之间发送数据,并使用getintent()getextras()获取数据。主要是,我一直在API 23中进行测试,我在API 15中运行了相同的测试,它崩溃了。即使是一个简单的getintent.hasextra也会崩溃。这是兼容性问题吗?我还添加了if getintent.getextras=空,但这也帮不了我。有人能帮我解决这个问题吗 多谢各位 代码: 活动1: Intent detailIntent =
Intent detailIntent = new Intent(this,MFGroupDetailsScreen.class);
detailIntent.putExtra("fromScreen",2);
if(Constants.USER_ID==selectedGroup.groupOwner)
{
Group groupWithAllMembers=groupArray.get(0);
for(Group group:groupArray)
{
if(group.groupID==Constants.GROUP_ID)
{
groupWithAllMembers = group;
break;
}
}
detailIntent.putExtra("members",groupWithAllMembers);
}
detailIntent.putExtra("selectedGroup",selectedGroup);
startActivity(detailIntent);
在这里,所有成员的分组和selectedGroup都是可分组的
活动2:
selectedGroup = (Group) getIntent().getParcelableExtra("selectedGroup");
更新:
错误堆栈跟踪
07-25 10:15:44.070:E/ingroupdetails(3391):现在进入group details屏幕
07-25 10:15:46.630:E/AndroidRuntime(3391):致命异常:主
07-25 10:15:46.630:E/AndroidRuntime(3391):java.lang.RuntimeException:无法启动活动组件信息{com.shimmerresearch.shimmergraphandlogservice/com.shimmerresearch.shimmergraphandlogservice.MFGroupDetailsScreen}:java.lang.NullPointerException
07-25 10:15:46.630:E/AndroidRuntime(3391):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
07-25 10:15:46.630:E/AndroidRuntime(3391):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-25 10:15:46.630:E/AndroidRuntime(3391):在android.app.ActivityThread.access$600(ActivityThread.java:141)
07-25 10:15:46.630:E/AndroidRuntime(3391):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-25 10:15:46.630:E/AndroidRuntime(3391):在android.os.Handler.dispatchMessage(Handler.java:99)上
07-25 10:15:46.630:E/AndroidRuntime(3391):在android.os.Looper.loop(Looper.java:137)
07-25 10:15:46.630:E/AndroidRuntime(3391):在android.app.ActivityThread.main(ActivityThread.java:5041)上
07-25 10:15:46.630:E/AndroidRuntime(3391):位于java.lang.reflect.Method.Invokenactive(本机方法)
07-25 10:15:46.630:E/AndroidRuntime(3391):位于java.lang.reflect.Method.invoke(Method.java:511)
07-25 10:15:46.630:E/AndroidRuntime(3391):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-25 10:15:46.630:E/AndroidRuntime(3391):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-25 10:15:46.630:E/AndroidRuntime(3391):在dalvik.system.NativeStart.main(本机方法)
07-25 10:15:46.630:E/AndroidRuntime(3391):由以下原因引起:java.lang.NullPointerException
07-25 10:15:46.630:E/AndroidRuntime(3391):在com.shimmerresearch.shimmergraphandlogservice.MFGroupDetailsScreen.onCreate(MFGroupDetailsScreen.java:39)
07-25 10:15:46.630:E/AndroidRuntime(3391):在android.app.Activity.performCreate(Activity.java:5104)上
07-25 10:15:46.630:E/AndroidRuntime(3391):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)上
07-25 10:15:46.630:E/AndroidRuntime(3391):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
2007-25 10:15:46.630:E/AndroidRuntime(3391):。。。还有11个
07-25 10:15:46.670:E/SurfaceFlinger(1129):ro.sf.lcd_密度必须定义为构建属性
07-25 10:15:50.710:E/InputDispatcher(1458):频道“a6f1bc50 com.shimmerresearch.shimmergraphandlogservice/com.shimmerresearch.shimmergraphandlogservice.MFGroupListScreen(服务器)”~频道已不可恢复地断开,将被处置!
07-25 10:15:50.710:E/InputDispatcher(1458):频道“a6bb8580 com.shimerresearch.shimergerraphandLogService/com.shimerresearch.shimergraphandLogService.MFSocialScreen(服务器)”~频道无法恢复,将被处理!
07-25 10:15:50.710:E/InputDispatcher(1458):频道“a6899430 com.shimerresearch.shimergraphandLogService/com.shimerresearch.shimergraphandLogService.DashboardScreen(服务器)”~频道无法恢复,将被处理!
07-25 10:15:50.740:E/Trace(3432):打开跟踪文件时出错:没有这样的文件或目录(2)
07-25 10:15:50.750:E/jdwp(3432):写入握手字节失败:管道断裂(-1/14)
07-25 10:15:50.800:E/SurfaceFlinger(1129):ro.sf.lcd_密度必须定义为建筑属性
07-25 10:15:50.800:E/InputDispatcher(1458):频道'a732dea8 com.shimmerresearch.shimmergraphandlogservice/com.shimmerresearch.shimmergraphandlogservice.MFSocialScreen(服务器)'~频道已无法恢复,将被处理!
07-25 10:15:50.840:E/SurfaceFlinger(1129):ro.sf.lcd_密度必须定义为构建属性
07-25 10:15:50.950:E/emuglGLESv2_enc(1793):检测到边界外的顶点属性索引。跳过相应的顶点属性。
2007-25 10:15:50.950:E/Emuglesv2_enc(1793):[07-25 10:15:50.990 1458:1473 D/]
07-25 10:15:50.950:E/emuglesv2_enc(1793):主机连接::get()新主机连接已建立0xb9947680,tid 1473
07-25 10:15:51.370:E/Emuglesv2_enc(1793):检测到边界外的顶点属性索引。跳过相应的顶点属性。
07-25 10:18:55.930:E/GTalkService(1777):连接关闭:没有XMPPConnection-真奇怪
尝试插入
putParcelable
并使用getParcelableExtra
获取它
Bundle bundle = new Bundle();
bundle.putParcelable("members",groupWithAllMembers);
bundle.putParcelable("selectedGroup",selectedGroup);
利用-
Bundle bundle = getIntent().getExtras();
bundle.getParcelable("members");
在组类中添加以下代码:
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public Group createFromParcel(Parcel in) {
return new Group(in);
}
public Group[] newArray(int size) {
return new Group[size];
}
};
以上代码将修复您的错误:
android.os.BadParcelableException:parcelableprotocol需要一个类上名为Creator的Parcelable.Creator对象
如果您对
Parcelable
实现有任何其他问题,我建议您参考您是否可以添加日志以及您的异常?android.os.BadParcelableException:Parcelable协议需要一个Parcelable。类上名为Creator的Creator对象看起来您在类implements Parcelable中存在冲突。请共享完整日志和您的数据类。我有可分配的对象,但我已将其注释掉。但仍然存在异常Thrown这是我得到的异常没有可分配的,只有可分配的列表