活动开始前的空指针异常?

时间:2014-10-15 01:44:30

标签: java android nullpointerexception

当我打开我的应用程序时发生了一个奇怪的错误,我运行应用程序它只是崩溃并告诉我,我有一个NullPointerException我检查了我的代码,但找不到可以让应用程序崩溃,直接蝙蝠。调试也无济于事

记录:

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) {        
            }
        }

    }

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

0 个答案:

没有答案
相关问题