java - 无法启动接收器,java空指针异常

标签 java android

我收到 Java 空指针异常“无法启动接收器”错误,

我的LogCat

04-23 21:55:16.889: I/TextView(8039): *****onCrecateContextMenu::isInputMethodTarget:true, isIMEChangable;true
04-23 21:55:25.479: D/AndroidRuntime(8039): Shutting down VM
04-23 21:55:25.479: W/dalvikvm(8039): threadid=1: thread exiting with uncaught exception (group=0x40018578)
04-23 21:55:25.479: E/AndroidRuntime(8039): FATAL EXCEPTION: main
04-23 21:55:25.479: E/AndroidRuntime(8039): java.lang.RuntimeException: Unable to start receiver com.yp.iss_project.CbReceiver: java.lang.NullPointerException
04-23 21:55:25.479: E/AndroidRuntime(8039):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:1809)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at android.app.ActivityThread.access$2400(ActivityThread.java:117)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:985)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at android.os.Looper.loop(Looper.java:130)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at android.app.ActivityThread.main(ActivityThread.java:3687)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at java.lang.reflect.Method.invokeNative(Native Method)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at java.lang.reflect.Method.invoke(Method.java:507)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at dalvik.system.NativeStart.main(Native Method)
04-23 21:55:25.479: E/AndroidRuntime(8039): Caused by: java.lang.NullPointerException
04-23 21:55:25.479: E/AndroidRuntime(8039):     at com.yp.iss_project.CbReceiver.onReceive(CbReceiver.java:272)
04-23 21:55:25.479: E/AndroidRuntime(8039):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:1798)
04-23 21:55:25.479: E/AndroidRuntime(8039):     ... 10 more
04-23 21:56:57.819: W/KeyCharacterMap(8162): No keyboard for id 0
04-23 21:56:57.819: W/KeyCharacterMap(8162): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
04-23 21:57:00.359: I/TextView(8162): *****onCrecateContextMenu::isInputMethodTarget:true, isIMEChangable;true
04-23 21:57:08.069: D/AndroidRuntime(8162): Shutting down VM
04-23 21:57:08.069: W/dalvikvm(8162): threadid=1: thread exiting with uncaught exception (group=0x40018578)
04-23 21:57:08.069: E/AndroidRuntime(8162): FATAL EXCEPTION: main
04-23 21:57:08.069: E/AndroidRuntime(8162): java.lang.RuntimeException: Unable to start receiver com.yp.iss_project.CbReceiver: java.lang.NullPointerException
04-23 21:57:08.069: E/AndroidRuntime(8162):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:1809)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at andr oid.app.ActivityThread.access$2400(ActivityThread.java:117)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:985)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at android.os.Looper.loop(Looper.java:130)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at android.app.ActivityThread.main(ActivityThread.java:3687)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at java.lang.reflect.Method.invokeNative(Native Method)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at java.lang.reflect.Method.invoke(Method.java:507)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at dalvik.system.NativeStart.main(Native Method)
04-23 21:57:08.069: E/AndroidRuntime(8162): Caused by: java.lang.NullPointerException
04-23 21:57:08.069: E/AndroidRuntime(8162):     at com.yp.iss_project.CbReceiver.onReceive(CbReceiver.java:273)
04-23 21:57:08.069: E/AndroidRuntime(8162):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:1798)
04-23 21:57:08.069: E/AndroidRuntime(8162):     ... 10 more
04-23 21:59:10.639: I/TextView(8265): *****onCrecateContextMenu::isInputMethodTarget:true, isIMEChangable;true
04-23 21:59:19.979: D/AndroidRuntime(8265): Shutting down VM
04-23 21:59:19.979: W/dalvikvm(8265): threadid=1: thread exiting with uncaught exception (group=0x40018578)

我的广播接收器是

   public static String str;
    public static int my;
    public static String MSG = encrypt.message;
    public final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";

    public void onReceive(Context context, Intent intent) {
        //---get the CB message passed in---

        Bundle bundle = intent.getExtras();        
        SmsCbMessage[] msgs = null;

        if (bundle != null)  {
            //---retrieve the SMS message received---
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsCbMessage[pdus.length];            
            for (int i=0; i<msgs.length; i++) {
                msgs[i] = SmsCbMessage.createFromPdu((byte[])pdus[i]);                
                str = ""; 
                str +="" +msgs[i].getGeographicalScope() + msgs[i].getMessageCode() + msgs[i].getMessageIdentifier() + msgs[i].getUpdateNumber();                     
                my = msgs[i].getGeographicalScope() + msgs[i].getMessageCode() + msgs[i].getMessageIdentifier() + msgs[i].getUpdateNumber();

                if(str != "")
                {
                Toast.makeText(context, "CB: " +str, Toast.LENGTH_LONG).show();
                Toast.makeText(context, "MY: " +my, Toast.LENGTH_LONG).show();

                {
                          String cipherText="";
                          for(int y=0;y<MSG.length();y++)
                          {

                               int charPosition = ALPHABET.indexOf(MSG.charAt(y));
                               int keyVal = (my + charPosition)%26;
                               char replaceVal = this.ALPHABET.charAt(keyVal);
                               cipherText += replaceVal;
                          }
                          Toast.makeText(context, "CipherText: " +cipherText, Toast.LENGTH_LONG).show();

                }

                }
                }
                abortBroadcast();  
                }

最佳答案

已删除

public static String MSG = encrypt.message;

并将所有出现的 MSG 替换为

encrypt.message

我的错误是从加密类传递值 pf 消息,因为接收器类中声明的 MSG 值是 null 我收到了空指针异常。

关于java - 无法启动接收器,java空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16265078/

相关文章:

android - 如果标签读取器没有相对运动,NFC 标签可以激活吗?

android - 在安卓真机上使用Appium,找不到工具栏按钮

java - 如何在实现 Parcelable 的类中使用 transient 变量?

java - Ubuntu 加载 JNI 失败

java - 一个类的两个实例可以并行调用方法(在某些对象上同步)

Android - 将 mp3 音频添加到 mp4 视频

Java 正则表达式匹配不匹配或的单词集,其余工作正常

java - Hibernate 外键标准过滤器

android - 增加 RGB 强度

Android 触摸事件确定持续时间