Java Android:putExtra parcelable停止活动启动。无误

Java Android:putExtra parcelable停止活动启动。无误,java,android,android-intent,parcelable,parcel,Java,Android,Android Intent,Parcelable,Parcel,我正在尝试制作一个应用程序,在这个应用程序中,我正在启动一个活动,并向活动中添加一些可打包的附加内容。然而,随着我的额外任务的增加,意图将不会启动活动。注释putExtra行可使其正常工作。这里没有错误,应用程序只是循环并允许再次使用前面的活动。 问题代码如下: //puzOut is a Puzzle object (code below) intent intent = new Intent(ChooseActivity.this, GameActivity.class); intent.p

我正在尝试制作一个应用程序,在这个应用程序中,我正在启动一个活动,并向活动中添加一些可打包的附加内容。然而,随着我的额外任务的增加,意图将不会启动活动。注释putExtra行可使其正常工作。这里没有错误,应用程序只是循环并允许再次使用前面的活动。 问题代码如下:

//puzOut is a Puzzle object (code below)
intent intent = new Intent(ChooseActivity.this, GameActivity.class);
intent.putExtra("puzzle", puzOut); // <- prevents activity starting
startActivity(intent);
如果我继续执行步骤,程序最终将返回Looper.java代码和循环。然后,我可以再次访问第一个活动的UI,并再次启动整个过程

为什么我的活动不是从这一行开始的?(我能找到的)没有错误可言。 重申一下,如果putExtra被注释掉,活动将启动


我真的很感谢你的帮助

当您尝试在地块中写入空值时,会发生这种情况。在下面的代码段中,如果名称字符串为null,将导致活动启动问题

out.writeString(Name);
因此,解决方案是,在声明时设置类数据成员的默认值。像

  String Name = "";
或者在写入包裹时添加一个检查,如果为空,则不要将其写入包裹。像

if (Name != null) {
     out.writeString(Name);
 }

什么是普佐特?这是一个拼图对象,对不起:)现在在问题中澄清了它。
out.writeString(Name);
  String Name = "";
if (Name != null) {
     out.writeString(Name);
 }