Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android捆绑包:java.lang.NullPointerException_Android_Bundle_Parcelable - Fatal编程技术网

Android捆绑包:java.lang.NullPointerException

Android捆绑包:java.lang.NullPointerException,android,bundle,parcelable,Android,Bundle,Parcelable,我正在尝试将包裹对象从活动发送到活动。下面的代码运行得很好,我对项目进行了更改,但没有对该部分进行更改,不知道为什么会停止工作 活动: Bundle bundle = new Bundle(); bundle.putParcelable("client", client); bundle.putParcelable("job", job); Intent intent = new Intent(this, EmailService.class); intent.putExtra("bundle

我正在尝试将
包裹
对象从
活动
发送到
活动
。下面的代码运行得很好,我对项目进行了更改,但没有对该部分进行更改,不知道为什么会停止工作

活动:

Bundle bundle = new Bundle();
bundle.putParcelable("client", client);
bundle.putParcelable("job", job);

Intent intent = new Intent(this, EmailService.class);
intent.putExtra("bundle", bundle);
intent.putExtra("type", "type1");

startService(intent);
服务:

protected void onHandleIntent(Intent intent) {
  String type = intent.getStringExtra("type");

  Bundle bundle = intent.getBundleExtra("bundle");
  Client client = bundle.getParcelable("client");
  ...
Client-Client=bundle.getParcelable(“客户”)导致
java.lang.NullPointerException:尝试获取空数组的长度
客户端
对象在
活动
中不为空,而
捆绑
服务
中不为空。我还能够在活动之间传递我的
客户机
对象,没有任何问题


为什么它停止工作了/我该如何修复它?

您不必放置捆绑包。您可以使用intent将对象或数据放入。然后在活动的OnCreate中解析此对象。认为您需要序列化对象或dto

示例:

像这样开始活动

Intent-Intent=新的Intent(这个,EmailService.class);
意向书。putExtra(“客户”,客户);
意向。额外(“工作”,工作)

然后在Oncreate of you Activity中进行如下解析

Client client = (Client) getIntent().getSerializableExtra("client");
Job job = (Job) getIntent().getSerializableExtra("job");

如果服务是一个
新活动
,那么尝试将
OnHandleContent
中的所有内容移动到
onCreate
,它会感觉到您的OnHandleContent很快被调用,并且转换没有发生。您为什么使用
intent.putExtra(“bundle”,bundle)?您可以使用
intent.putExtra(“客户机”,client);意向。额外(“工作”,工作)相反。@Lamar服务在后台运行,我正在尝试从一个活动启动它。@String type=INTERENT.getStringExtra(“类型”):我现在删除了捆绑包:String type=INTERENT.getStringExtra(“类型”);正在崩溃。