Android 错误 java.lang.RuntimeException:接收广播 Intent

问题描述

我目前正在做一个项目,但我一直遇到错误

java.lang.RuntimeException:在 cn.ingenic.glasssync.utils.WifiAPUtils$1@428319e 中接收广播 Intent { act=android.net.wifi.WIFI_AP_STATE_CHANGED flg=0x4000010 (has extras) } 时出错

进一步阅读日志,我还看到一个空指针异常,它说:

Caused by: java.lang.NullPointerException: println 需要一条消息 01-06 10:57:26.272 12372 12372 E AndroidRuntime:在 android.util.Log.println_native(本地方法) 01-06 10:57:26.272 12372 12372 E AndroidRuntime:在 android.util.Log.e(Log.java:249) 01-06 10:57:26.272 12372 12372 E AndroidRuntime:在 cn.ingenic.glasssync.utils.WifiAPUtils.getValidApSsid(WifiAPUtils.java:225) 01-06 10:57:26.272 12372 12372 E AndroidRuntime:在 cn.ingenic.glasssync.utils.WifiAPUtils$1.onReceive(WifiAPUtils.java:202)

当我检查 WifiAPUtils.java 中的第 225 行并将其替换为有效字符串时,我收到错误

01-11 00:00:50.590 29176 29217 E AndroidRuntime:致命异常:线程 2 01-11 00:00:50.590 29176 29217 E AndroidRuntime:进程:cn.ingenic.glasssync:remote,PID:29176 01-11 00:00:50.590 29176 29217 E AndroidRuntime:java.lang.ExceptionInInitializerError 01-11 00:00:50.590 29176 29217 E AndroidRuntime:在 com.baidu.location.Jni.j(未知来源:0) 01-11 00:00:50.590 29176 29217 E AndroidRuntime:在 com.baidu.location.t$a.X(未知来源:8) 01-11 00:00:50.590 29176 29217 E AndroidRuntime:在 com.baidu.location.ae.run(未知来源:10) 01-11 00:00:50.590 29176 29217 E AndroidRuntime:由:java.lang.IllegalStateException:未找到 liblocSDK4d.so 文件,请更正设置

是否有人碰巧知道导致此错误的原因,这里是可能导致此错误代码片段:

private broadcastReceiver mWifiStatebroadcastReceiver = new broadcastReceiver() {
            
        @Override
        public void onReceive(Context context,Intent intent) {
        Log.i(TAG,"WifiAPUtils onReceive: "+intent.getAction());
        if(WIFI_AP_STATE_CHANGED_ACTION.equals(intent.getAction())) {
            int cstate = intent.getIntExtra(EXTRA_WIFI_AP_STATE,-1);
            if(cstate == WIFI_AP_STATE_ENABLED) {
            if(mHandler != null)
                mHandler.sendEmptyMessage(MESSAGE_AP_STATE_ENABLED);

              /*notify glass to reconnect*/
            String ssid = getValidApSsid(context);
            String pw = getValidPassword(context);
            int security = getValidSecurity(context);
            SettingModule.getInstance(context).sendWifiApInfo(ssid,pw,security);

            }if(cstate == WIFI_AP_STATE_disABLED  || cstate == WIFI_AP_STATE_Failed) {
            if(mHandler != null)
                mHandler.sendEmptyMessage(MESSAGE_AP_STATE_Failed);
            }
        }
        }
    };
        
    public enum WifiCipherType {
        WIFICIPHER_nopASS,WIFICIPHER_WPA,WIFICIPHER_WEP,WIFICIPHER_INVALID,WIFICIPHER_WPA2
    }
    
    public String getValidApSsid(Context context) {
        try {
            Method method = mWifiManager.getClass().getmethod("getWifiApConfiguration");
            WifiConfiguration configuration = (WifiConfiguration)method.invoke(mWifiManager);
            return configuration.SSID;  
        } catch (Exception e) {
                Log.e(TAG,"testing" + e.getMessage());
                return null;
                }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)