我的Android应用程序一直在崩溃。 我正试图通过电话后连接到网络服务。 但是我的应用程序每次尝试调用Web服务时都会继续崩溃。
import android.app.Activity;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import java.io.IOException;
public class PostActivity extends Activity {
//static String response = null;
public void loadPost() throws IOException {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpEntity httpEntity = null;
HttpResponse httpResponse = null;
String blogFeedUrl = "http://localhost/medapp/public/mobile/post";
HttpGet httpGet = new HttpGet(blogFeedUrl);
httpResponse = httpClient.execute(httpGet); // <-- this is where the application crashes
}
}
答案 0 :(得分:0)
根据您发布的代码和相关的导入,取决于O.S(Esp Honeycomb及以后版本),您的应用程序将因NetworkOnMainThreadException
而崩溃。您正在主线程上尝试网络操作,而不是在后台线程或Asyctask中。
在您的logcat中(如果您发布了它的帮助),将会抛出NetworkOnMainThreadException
:
E/AndroidRuntime(673): java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.example/com.example.ExampleActivity}: android.os.NetworkOnMainThreadException
详细记录了为何发生这种情况的原因
应用程序时抛出
NetworkOnMainThreadException
尝试在其主线程上执行网络操作。这是 仅针对Honeycomb SDK或更高版本的应用程序抛出。 允许使用早期SDK版本的应用程序 他们的主要事件循环线程上的网络,但它很重要 气馁。
通过:
Why the app would crash or work depending on O.S.
Try AsyncTask to avoid NetworkOnMainThread
为什么不使用Strict Mode替代方案作为您的解决方案并且仅用于调试(我建议实际上避免使用,您现在知道问题是什么):
Critical to fix it, not by setting Thread policies