问题描述
- java.lang.RuntimeException(已声明但未初始化的变量出错)
-
我的错误定位了,但是我不知道怎么改,请大神指点哈。
代码如下switch (bundle.getInt(PushConsts.CMD_ACTION)) { case PushConsts.GET_CLIENTID: comm_frame.dev.client_id = bundle.getString("clientid"); <--这里 }
错误原因是comm_frame.dev.client_id声明了但是未初始化,但是我更改成
comm_frame.dev.client_id = null;
comm_frame.dev.client_id = bundle.getString("clientid");
还是报错,我应该怎么改它才能正常工作呢,请求指点。错误信息如下
07-09 19:53:49.434 30483-30483/ixz.fish_help_app E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start receiver comm.GetuiReceiver: java.lang.NullPointerException at android.app.ActivityThread.handleReceiver(ActivityThread.java:2287) at android.app.ActivityThread.access$1600(ActivityThread.java:140) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1313) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4935) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at comm.GetuiReceiver.onReceive(GetuiReceiver.java:140) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2280) ????????????at android.app.ActivityThread.access$1600(ActivityThread.java:140) ????????????at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1313) ????????????at android.os.Handler.dispatchMessage(Handler.java:99) ????????????at android.os.Looper.loop(Looper.java:137) ????????????at android.app.ActivityThread.main(ActivityThread.java:4935) ????????????at java.lang.reflect.Method.invokeNative(Native Method) ????????????at java.lang.reflect.Method.invoke(Method.java:511) ????????????at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) ????????????at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) ????????????at dalvik.system.NativeStart.main(Native Method)
解决方案
comm_frame.dev.client_id中comm_frame有没有初始化,报的是空指针。所以看
comm_frame这个对象和bundle是不是空值就行了
解决方案二:
bundle.getString("clientid那你看看你这个bundle里有没有这个字符串代表的数据啊。
或者用Toast打印一下看看。
解决方案三:
Unable to start receiver comm.GetuiReceiver
检查AndroidManifest.xml配置文件中是否配置了receiver
解决方案四:
zcomm_frame有没有初始化,是空指针
解决方案五:
代码太多,我嫌上一部分
package comm;
public class comm_frame
{
public class frame_head
{
public byte[] dev_id;
public byte manu_id;
public byte dev_type;
public byte frame_type;
public short frame_len;
}
static public frame_head frame_head_info;
。。。
里面是一些成员变量和实现函数
}
解决方案六:
空指针异常,看看是不是没有初始化啊
时间: 2024-08-03 16:53:34