我的问题:AndroidManifest.xml添加下面两行,程序运行就挂掉(如果去掉这两行,运行正常),打印信息为: <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
这个代码是用httpclient写的一个http简单的例子。添加权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getServerData("http://www.baidu.com");
} private void getServerData(String url){
HttpClient client=new DefaultHttpClient();
HttpGet request;
// HttpPost request;
try {
request = new HttpGet(new URI(url));
// request = new HttpPost(new URI(url));
HttpResponse response=client.execute(request);
//判断请求是否成功
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
if(entity!=null){
String out=EntityUtils.toString(entity);
new AlertDialog.Builder(this).setMessage(out).create().show();
}
}
else{
HttpEntity entity=response.getEntity();
if(entity!=null){
String out="errcode:"+response.getStatusLine().getStatusCode()+"\t\n"+EntityUtils.toString(entity);
new AlertDialog.Builder(this).setMessage(out).create().show();
}
}
}
catch (URISyntaxException e) {
e.printStackTrace();
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}出错LOG:10-29 22:43:18.103: W/System.err(2004): at dalvik.system.NativeStart.main(Native Method)
10-29 22:43:18.423: D/gralloc_goldfish(2004): Emulator without GPU emulation detected.
10-29 22:45:06.933: D/AndroidRuntime(2094): Shutting down VM
10-29 22:45:06.973: W/dalvikvm(2094): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
10-29 22:45:07.013: E/AndroidRuntime(2094): FATAL EXCEPTION: main
10-29 22:45:07.013: E/AndroidRuntime(2094): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.httpdemo/com.example.httpdemo.MainActivity}: android.os.NetworkOnMainThreadException
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.os.Handler.dispatchMessage(Handler.java:99)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.os.Looper.loop(Looper.java:137)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.app.ActivityThread.main(ActivityThread.java:5103)
10-29 22:45:07.013: E/AndroidRuntime(2094): at java.lang.reflect.Method.invokeNative(Native Method)
10-29 22:45:07.013: E/AndroidRuntime(2094): at java.lang.reflect.Method.invoke(Method.java:525)
10-29 22:45:07.013: E/AndroidRuntime(2094): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-29 22:45:07.013: E/AndroidRuntime(2094): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-29 22:45:07.013: E/AndroidRuntime(2094): at dalvik.system.NativeStart.main(Native Method)
10-29 22:45:07.013: E/AndroidRuntime(2094): Caused by: android.os.NetworkOnMainThreadException
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133)
10-29 22:45:07.013: E/AndroidRuntime(2094): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
10-29 22:45:07.013: E/AndroidRuntime(2094): at androidhttp
android:minSdkVersion="8"
android:targetSdkVersion="17" />
这个代码是用httpclient写的一个http简单的例子。添加权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getServerData("http://www.baidu.com");
} private void getServerData(String url){
HttpClient client=new DefaultHttpClient();
HttpGet request;
// HttpPost request;
try {
request = new HttpGet(new URI(url));
// request = new HttpPost(new URI(url));
HttpResponse response=client.execute(request);
//判断请求是否成功
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
if(entity!=null){
String out=EntityUtils.toString(entity);
new AlertDialog.Builder(this).setMessage(out).create().show();
}
}
else{
HttpEntity entity=response.getEntity();
if(entity!=null){
String out="errcode:"+response.getStatusLine().getStatusCode()+"\t\n"+EntityUtils.toString(entity);
new AlertDialog.Builder(this).setMessage(out).create().show();
}
}
}
catch (URISyntaxException e) {
e.printStackTrace();
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}出错LOG:10-29 22:43:18.103: W/System.err(2004): at dalvik.system.NativeStart.main(Native Method)
10-29 22:43:18.423: D/gralloc_goldfish(2004): Emulator without GPU emulation detected.
10-29 22:45:06.933: D/AndroidRuntime(2094): Shutting down VM
10-29 22:45:06.973: W/dalvikvm(2094): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
10-29 22:45:07.013: E/AndroidRuntime(2094): FATAL EXCEPTION: main
10-29 22:45:07.013: E/AndroidRuntime(2094): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.httpdemo/com.example.httpdemo.MainActivity}: android.os.NetworkOnMainThreadException
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.os.Handler.dispatchMessage(Handler.java:99)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.os.Looper.loop(Looper.java:137)
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.app.ActivityThread.main(ActivityThread.java:5103)
10-29 22:45:07.013: E/AndroidRuntime(2094): at java.lang.reflect.Method.invokeNative(Native Method)
10-29 22:45:07.013: E/AndroidRuntime(2094): at java.lang.reflect.Method.invoke(Method.java:525)
10-29 22:45:07.013: E/AndroidRuntime(2094): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-29 22:45:07.013: E/AndroidRuntime(2094): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-29 22:45:07.013: E/AndroidRuntime(2094): at dalvik.system.NativeStart.main(Native Method)
10-29 22:45:07.013: E/AndroidRuntime(2094): Caused by: android.os.NetworkOnMainThreadException
10-29 22:45:07.013: E/AndroidRuntime(2094): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133)
10-29 22:45:07.013: E/AndroidRuntime(2094): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
10-29 22:45:07.013: E/AndroidRuntime(2094): at androidhttp
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货