Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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
java.lang.IllegalArgumentException:不是基元字段_Java_Android - Fatal编程技术网

java.lang.IllegalArgumentException:不是基元字段

java.lang.IllegalArgumentException:不是基元字段,java,android,Java,Android,我得到了一个错误: java.lang.IllegalArgumentException: not a primitive field 行中: class IncomingHandler extends Handler { @Override public void handleMessage(Message msg) { Bundle bundleRequest = msg.getData(); String packageName = bun

我得到了一个错误:

java.lang.IllegalArgumentException: not a primitive field
行中:

class IncomingHandler extends Handler {
    @Override
    public void handleMessage(Message msg) {
        Bundle bundleRequest = msg.getData();
        String packageName = bundleRequest.getString("packageName"); // <-- here
    // etc...
如何修复此错误

编辑:添加填充值的方法:

final Messenger mMessenger = new Messenger(new IncomingHandler());
public void onServiceConnected(ComponentName className, IBinder service) {
            // etc
            try {
                // RSE_REGISTER_CLIENT is 0
                Message msg = Message.obtain(null, RSE_REGISTER_CLIENT); 
                msg.replyTo = mMessenger;
                Bundle bndlResponse = new Bundle();
                bndlResponse.putString("packageName", context.getPackageName());
                msg.setData(bndlResponse);
                mService.send(msg);
                // etc

请显示您填充此
捆绑包的代码
@commonware我在问题中添加了代码。这很奇怪。堆栈跟踪显示Android正在尝试对
捆绑包中的
可序列化的
进行反序列化。你确定没有其他情况下你正在向这个
处理程序发送
消息
?有更多的情况,是的,但其他都是成功的消息,错误出现在那一行,但有时有错误,有时没有错误,像每个人一样,我想要一个稳定的应用程序,而不是有时的应用程序。这个错误很奇怪,是的。。。我在Android的api 19中测试。您将“Message.what”值设置为“RSE\u REGISTER\u CLIENT”。我想知道“传入处理程序”是否应该在处理捆绑包之前检查这个“什么”(以确保您对自己的消息做出反应,因为处理程序将在UI线程上接收各种消息)我不是把这当作一个答案,因为这是一个“尝试这个”的方法。如果没有更多的代码,我无法重现这个问题-对不起,请显示您填充此
捆绑包的代码
@commonware我在问题中添加了代码。这很奇怪。堆栈跟踪显示Android正在尝试对
捆绑包中的
可序列化的
进行反序列化。你确定没有其他情况下你正在向这个
处理程序发送
消息
?有更多的情况,是的,但其他都是成功的消息,错误出现在那一行,但有时有错误,有时没有错误,像每个人一样,我想要一个稳定的应用程序,而不是有时的应用程序。这个错误很奇怪,是的。。。我在Android的api 19中测试。您将“Message.what”值设置为“RSE\u REGISTER\u CLIENT”。我想知道“传入处理程序”是否应该在处理捆绑包之前检查这个“什么”(以确保您对自己的消息做出反应,因为处理程序将在UI线程上接收各种消息)我不是把这当作一个答案,因为这是一个“尝试这个”的方法。没有更多的代码,我无法重现问题-抱歉
final Messenger mMessenger = new Messenger(new IncomingHandler());
public void onServiceConnected(ComponentName className, IBinder service) {
            // etc
            try {
                // RSE_REGISTER_CLIENT is 0
                Message msg = Message.obtain(null, RSE_REGISTER_CLIENT); 
                msg.replyTo = mMessenger;
                Bundle bndlResponse = new Bundle();
                bndlResponse.putString("packageName", context.getPackageName());
                msg.setData(bndlResponse);
                mService.send(msg);
                // etc