Java 活动开始前出现空指针异常?

Java 活动开始前出现空指针异常?,java,android,nullpointerexception,Java,Android,Nullpointerexception,当我打开应用程序时,会发生一个奇怪的错误,我运行应用程序,它只是崩溃,并告诉我我有一个NullPointerException我已经检查了我的代码,但找不到可以立即崩溃应用程序的东西。调试也没有帮助 日志: 代码: 公共类MainActivity扩展了ActionBarActivity{ 按钮b; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.lay

当我打开应用程序时,会发生一个奇怪的错误,我运行应用程序,它只是崩溃,并告诉我我有一个
NullPointerException
我已经检查了我的代码,但找不到可以立即崩溃应用程序的东西。调试也没有帮助

日志:

代码:

公共类MainActivity扩展了ActionBarActivity{
按钮b;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b=(按钮)findviewbyd(R.id.search_按钮);
b、 setOnClickListener(按钮单击);
}
私有OnClickListener按钮单击=新建按钮。OnClickListener(){
@凌驾
公共void onClick(视图v){
按钮b=(按钮)findViewById(R.id.search_按钮);
b、 可点击设置(真);
新建LongRunningGetIO().execute();
}
};
类LongRunningGetIO扩展了AsyncTask{
受保护字符串GetAscioContentRomentity(HttpEntity实体)引发IllegalStateException、IOException{
InputStream in=entity.getContent();
StringBuffer out=新的StringBuffer();
int n=1;
而(n>0){
字节[]b=新字节[4096];
n=英寸读数(b);
如果(n>0)out.append(新字符串(b,0,n));
}
return out.toString();
}
@凌驾
受保护字符串doInBackground(无效…参数){
字符串r=“wtf”;
HttpClient HttpClient=新的DefaultHttpClient();
HttpContext localContext=新的BasicHttpContext();
HttpGet HttpGet=新的HttpGet(“http://www.reddit.com/api/subreddits_by_topic.json?query=\“+r+”\”);
字符串文本=空;
试一试{
HttpResponse response=httpClient.execute(httpGet,localContext);
HttpEntity=response.getEntity();
text=getAsciContentRomentity(实体);
}捕获(例外e){
返回e.getLocalizedMessage();
}
返回文本;
}
受保护的void onPostExecute(字符串结果){
如果(结果!=null){
}
}
}

请随时询问是否需要更多代码。

onCreate()第35行正在抛出一个NPE,你确定你的视图层次结构中有一个名为search_button的视图吗?@panini我觉得很愚蠢…这就是问题所在,出于某种原因,即使它名为
searchButton
而不是
search_button
编译器没有抛出错误。谢谢!@panini是的,对不起,我不能给你打勾。小心点这是因为你在另一个布局中声明了另一个视图,称为search_button,所以编译器将它添加到了你的R文件中,它确实存在于编译器中。
10-14 21:36:32.130: E/AndroidRuntime(18166): FATAL EXCEPTION: main
10-14 21:36:32.130: E/AndroidRuntime(18166): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.taimurinc.javatest/com.taimurinc.javatest.MainActivity}: java.lang.NullPointerException
10-14 21:36:32.130: E/AndroidRuntime(18166):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1960)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1985)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at android.os.Handler.dispatchMessage(Handler.java:99)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at android.os.Looper.loop(Looper.java:137)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at android.app.ActivityThread.main(ActivityThread.java:4429)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at java.lang.reflect.Method.invokeNative(Native Method)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at java.lang.reflect.Method.invoke(Method.java:511)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at dalvik.system.NativeStart.main(Native Method)
10-14 21:36:32.130: E/AndroidRuntime(18166): Caused by: java.lang.NullPointerException
10-14 21:36:32.130: E/AndroidRuntime(18166):    at com.taimurinc.javatest.MainActivity.onCreate(MainActivity.java:35)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at android.app.Activity.performCreate(Activity.java:4471)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
10-14 21:36:32.130: E/AndroidRuntime(18166):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1924)
10-14 21:36:32.130: E/AndroidRuntime(18166):    ... 11 more
public class MainActivity extends ActionBarActivity {

    Button b;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        b = (Button) findViewById(R.id.search_button);
        b.setOnClickListener(buttonClick);
    }

    private OnClickListener buttonClick = new Button.OnClickListener() {
        @Override
        public void onClick(View v) {
            Button b = (Button) findViewById(R.id.search_button);

            b.setClickable(true);
            new LongRunningGetIO().execute();
        }
    };


 class LongRunningGetIO extends AsyncTask <Void, Void, String> {
        protected String getASCIIContentFromEntity(HttpEntity entity) throws IllegalStateException, IOException {
        InputStream in = entity.getContent();


        StringBuffer out = new StringBuffer();
        int n = 1;
        while (n>0) {
            byte[] b = new byte[4096];
            n =  in.read(b);


            if (n>0) out.append(new String(b, 0, n));
        }
            return out.toString();
        }


        @Override


        protected String doInBackground(Void... params) {
            String r = "wtf";
            HttpClient httpClient = new DefaultHttpClient();
            HttpContext localContext = new BasicHttpContext();
            HttpGet httpGet = new HttpGet("http://www.reddit.com/api/subreddits_by_topic.json?query=\"" + r + "\"");
            String text = null;
            try {
                HttpResponse response = httpClient.execute(httpGet, localContext);


                HttpEntity entity = response.getEntity();


                text = getASCIIContentFromEntity(entity);


                } catch (Exception e) {
                return e.getLocalizedMessage();
                }


                return text;
            }


            protected void onPostExecute(String results) {
            if (results!=null) {        
            }
        }

    }