当我打开我的应用程序时发生了一个奇怪的错误,我运行应用程序它只是崩溃并告诉我,我有一个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) {
}
}
}
请随时询问您是否需要更多代码。