如何修复android中无法启动activity ComponentInfo的异常

如何修复android中无法启动activity ComponentInfo的异常,android,Android,Java代码: E/AndroidRuntime(1844): FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chatr/com.example.chatr.MainActivity}: java.lang.NullPointerException at android.app.ActivityThread.performLaun

Java代码:

 E/AndroidRuntime(1844): FATAL EXCEPTION: main
 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chatr/com.example.chatr.MainActivity}: java.lang.NullPointerException
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2351)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2403)
    at android.app.ActivityThread.access$600(ActivityThread.java:165)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5391)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.NullPointerException
    at com.example.chatr.MainActivity.SendMessage(MainActivity.java:68)
    at com.example.chatr.MainActivity.onCreate(MainActivity.java:27)
    at android.app.Activity.performCreate(Activity.java:5122)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1150)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2315)
    ... 11 more
公共类MainActivity扩展活动{
轮毂连接接头;
代理权;
编辑文本编辑文本;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//
TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edittext=(edittext)findViewById(R.id.setIdEditText);
新的a().execute();
microsoft.aspnet.signalr.client.Logger Logger=新的microsoft.aspnet.signalr.client.Logger(){
@凌驾
公共作废日志(字符串消息,日志级别){
//TODO自动生成的方法存根
}
};
conn=新的轮毂连接(“http://www.signalr.lociiapp.com/",
“userId=”+5,true,logger);
proxy=conn.createhubbroxy(“ChatHub”);
连接开始()已完成(新操作()){
@凌驾
公共void运行(void obj)引发异常{
//TODO自动生成的方法存根
runOnUiThread(新的Runnable(){
公开募捐{
edittext.setText(“连接”);
}
});
}
});
SendMessage(5,4,“你好”);
}
类扩展异步任务{
@凌驾
受保护的Void doInBackground(Void…参数){
//TODO自动生成的方法存根
SendMessage(5,4,“你好”);
返回null;
}
}
公共无效发送消息(int-id、int-toid、字符串消息){
调用(“SendMessage”,新的ReceiveObject(id、toid、message))。完成(
新行动(){
@凌驾
公共void运行(void obj)引发异常{
runOnUiThread(新的Runnable(){
公开募捐{
}
});
}
});
}
}
这是我的代码,我在那里打印了异常,即使我在线程中启动了服务,请检查我的代码,哪里做错了,我在第68行和第27行收到异常:


newa().execute()
proxy.invoke(“SendMessage”,新的ReceiveObject(id、toid、message)).done(
请帮助我,

当您在下面初始化代理并在此之前调用asynctask时,代理将在该点(第68行)为空

public class MainActivity extends Activity {
    HubConnection conn;
    HubProxy proxy;
    EditText edittext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //

     TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            edittext = (EditText) findViewById(R.id.setIdEditText);
            new a().execute();
            microsoft.aspnet.signalr.client.Logger logger = new microsoft.aspnet.signalr.client.Logger() {

                @Override
                public void log(String message, LogLevel level) {
                    // TODO Auto-generated method stub

                }
            };
            conn = new HubConnection("http://www.signalr.lociiapp.com/",
                    "userId=" + 5, true, logger);
            proxy = conn.createHubProxy("ChatHub");

            conn.start().done(new Action<Void>() {

                @Override
                public void run(Void obj) throws Exception {
                    // TODO Auto-generated method stub
                    runOnUiThread(new Runnable() {
                        public void run() {
                            edittext.setText("Conected");
                        }
                    });
                }
            });
            SendMessage(5, 4, "Hello");
        }

        class a extends AsyncTask<Void, Void, Void> {

            @Override
            protected Void doInBackground(Void... params) {
                // TODO Auto-generated method stub
                SendMessage(5, 4, "Hello");
                return null;
            }

        }

        public void SendMessage(int id, int toid, String message) {

            proxy.invoke("SendMessage", new ReceiveObject(id, toid, message)).done(
                    new Action<Void>() {
                        @Override
                        public void run(Void obj) throws Exception {
                            runOnUiThread(new Runnable() {
                                public void run() {

                                }
                            });
                        }
                    });
        }
    }
public void SendMessage(int-id、int-toid、String-message){
//代理将为null,因为它在下面的onCreate()中初始化
调用(“SendMessage”,新的ReceiveObject(id、toid、message))。完成(
新行动(){
@凌驾
公共void运行(void obj)引发异常{
runOnUiThread(新的Runnable(){
公开募捐{
}
});
}
});
}
新a().execute();
移动到每个初始化下面或下面的案例中

proxy=conn.createhubbroxy(“ChatHub”);

您是否处理过信号R问题即将出现代码正在运行但未获取值您正在获取空指针异常bcox代理变量为空…原因是您在OnCreate()中定义代理值之前通过asynkTask()调用SendMessage()方法…首先定义代理变量的值,然后调用SendMessage()函数
    public void SendMessage(int id, int toid, String message) {
        //proxy will be null as it is initialized below in onCreate()
        proxy.invoke("SendMessage", new ReceiveObject(id, toid, message)).done(
                new Action<Void>() {
                    @Override
                    public void run(Void obj) throws Exception {
                        runOnUiThread(new Runnable() {
                            public void run() {

                            }
                        });
                    }
                });
    }