Android 连接到代理时的NPE

Android 连接到代理时的NPE,android,mqtt,messagebroker,mosquitto,Android,Mqtt,Messagebroker,Mosquitto,我是泛美卫生组织安卓服务和MQTT协议的新手。我一直在尝试编写一个简单的代码,通过“xx.xx.xx.xxx:1883”连接到mqtt代理。当我运行下面发布的代码时,它会生成logcat输出 为什么我会得到这个NPE 注意: private Context mContext; private final String serverURI = "xx.xx.xx.xx:1883"; private final String clientID = MqttClient.generateClientI

我是泛美卫生组织安卓服务和MQTT协议的新手。我一直在尝试编写一个简单的代码,通过
“xx.xx.xx.xxx:1883”
连接到
mqtt
代理。当我运行下面发布的代码时,它会生成
logcat
输出

为什么我会得到这个
NPE

注意

private Context mContext;
private final String serverURI = "xx.xx.xx.xx:1883";
private final String clientID = MqttClient.generateClientId();
private MqttAndroidClient client = null;
private final String TAG = this.getClass().getSimpleName();
 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mqtt__proj_00_layout);

        MqttAndroidClient client = new MqttAndroidClient(mContext, serverURI, clientID);
        if (client != null) {
            try {
                client.connect(mContext, new IMqttActionListener() {

                    @Override
                    public void onSuccess(IMqttToken arg0) {
                        // TODO Auto-generated method stub
                        Log.i(TAG, "Connection Successful.");
                    }

                    @Override
                    public void onFailure(IMqttToken arg0, Throwable arg1) {
                        // TODO Auto-generated method stub
                        Log.i(TAG, "Connection Failed.");
                    }
                });
            } catch (MqttException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

}
11-13 10:51:07.913: E/AndroidRuntime(26656): FATAL EXCEPTION: main
11-13 10:51:07.913: E/AndroidRuntime(26656): Process: com.example.mqtt_proj_00, PID: 26656
11-13 10:51:07.913: E/AndroidRuntime(26656): java.lang.RuntimeException: Unable to start activity  
ComponentInfo{com.example.mqtt_proj_00/com.example.mqtt_proj_00.MQTT_Proj_00}:   
java.lang.NullPointerException
11-13 10:51:07.913: E/AndroidRuntime(26656):    at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282)
11-13 10:51:07.913: E/AndroidRuntime(26656):    at   
com.example.mqtt_proj_00.MQTT_Proj_00.onCreate(MQTT_Proj_00.java:35)
我安装了
mosquito服务器

第35行

代码

private Context mContext;
private final String serverURI = "xx.xx.xx.xx:1883";
private final String clientID = MqttClient.generateClientId();
private MqttAndroidClient client = null;
private final String TAG = this.getClass().getSimpleName();
 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mqtt__proj_00_layout);

        MqttAndroidClient client = new MqttAndroidClient(mContext, serverURI, clientID);
        if (client != null) {
            try {
                client.connect(mContext, new IMqttActionListener() {

                    @Override
                    public void onSuccess(IMqttToken arg0) {
                        // TODO Auto-generated method stub
                        Log.i(TAG, "Connection Successful.");
                    }

                    @Override
                    public void onFailure(IMqttToken arg0, Throwable arg1) {
                        // TODO Auto-generated method stub
                        Log.i(TAG, "Connection Failed.");
                    }
                });
            } catch (MqttException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

}
11-13 10:51:07.913: E/AndroidRuntime(26656): FATAL EXCEPTION: main
11-13 10:51:07.913: E/AndroidRuntime(26656): Process: com.example.mqtt_proj_00, PID: 26656
11-13 10:51:07.913: E/AndroidRuntime(26656): java.lang.RuntimeException: Unable to start activity  
ComponentInfo{com.example.mqtt_proj_00/com.example.mqtt_proj_00.MQTT_Proj_00}:   
java.lang.NullPointerException
11-13 10:51:07.913: E/AndroidRuntime(26656):    at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282)
11-13 10:51:07.913: E/AndroidRuntime(26656):    at   
com.example.mqtt_proj_00.MQTT_Proj_00.onCreate(MQTT_Proj_00.java:35)
logcat

private Context mContext;
private final String serverURI = "xx.xx.xx.xx:1883";
private final String clientID = MqttClient.generateClientId();
private MqttAndroidClient client = null;
private final String TAG = this.getClass().getSimpleName();
 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mqtt__proj_00_layout);

        MqttAndroidClient client = new MqttAndroidClient(mContext, serverURI, clientID);
        if (client != null) {
            try {
                client.connect(mContext, new IMqttActionListener() {

                    @Override
                    public void onSuccess(IMqttToken arg0) {
                        // TODO Auto-generated method stub
                        Log.i(TAG, "Connection Successful.");
                    }

                    @Override
                    public void onFailure(IMqttToken arg0, Throwable arg1) {
                        // TODO Auto-generated method stub
                        Log.i(TAG, "Connection Failed.");
                    }
                });
            } catch (MqttException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

}
11-13 10:51:07.913: E/AndroidRuntime(26656): FATAL EXCEPTION: main
11-13 10:51:07.913: E/AndroidRuntime(26656): Process: com.example.mqtt_proj_00, PID: 26656
11-13 10:51:07.913: E/AndroidRuntime(26656): java.lang.RuntimeException: Unable to start activity  
ComponentInfo{com.example.mqtt_proj_00/com.example.mqtt_proj_00.MQTT_Proj_00}:   
java.lang.NullPointerException
11-13 10:51:07.913: E/AndroidRuntime(26656):    at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282)
11-13 10:51:07.913: E/AndroidRuntime(26656):    at   
com.example.mqtt_proj_00.MQTT_Proj_00.onCreate(MQTT_Proj_00.java:35)

mContext
为空,需要对其进行初始化

您可以通过替换McContext来完成此操作(如果您没有在其他地方使用它):


谢谢你的回答。现在,在使用“GetApplicationContext”之后,控制台会说“找不到org.eclipse.paho.android.service.apk”,这有帮助吗?非常感谢,问题解决了。但当我注释掉代码中提到的if语句时,应用程序并没有崩溃。但是当我使用“if(clien!=null)”时,应用程序崩溃,logcat什么也不显示。我是否应该为此发布一个新问题?我建议创建一个新问题,是的。如果LogCat确实没有显示任何内容,您可以将其设置为verbose,并查看是否可以通过这种方式显示更详细的日志。