Android 在姜饼中工作的应用程序在蜂巢中抛出NetworkOnMainThreadException

Android 在姜饼中工作的应用程序在蜂巢中抛出NetworkOnMainThreadException,android,json,http,http-get,arrays,Android,Json,Http,Http Get,Arrays,我使用以下函数从php网页获取JSON数组 虽然这段代码在2.3版本的应用程序上运行,但在我目前构建的3.0版本上,它会强制关闭,并给我一个奇怪的错误日志 任何帮助都会很好 在使用http POST之类的东西时,蜂窝与姜饼相比有什么特殊性吗 private void getNews(){ try{ HttpGet httpGet = new HttpGet("http://www.ace.ucv.ro/android/stiri.php?perpage=20");

我使用以下函数从php网页获取JSON数组

虽然这段代码在2.3版本的应用程序上运行,但在我目前构建的3.0版本上,它会强制关闭,并给我一个奇怪的错误日志

任何帮助都会很好

在使用http POST之类的东西时,蜂窝与姜饼相比有什么特殊性吗

    private void getNews(){
    try{
    HttpGet httpGet = new HttpGet("http://www.ace.ucv.ro/android/stiri.php?perpage=20");

    result = EntityUtils.toString(new DefaultHttpClient().execute(httpGet).getEntity());

    JSONArray jsonMainArray = new JSONArray(result);


} catch (ParseException e) {
    e.printStackTrace();
} catch (ClientProtocolException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
} catch (JSONException e) {
    e.printStackTrace();
}
}   
并调用该函数:

        getNews.setOnClickListener(new OnClickListener(){
        public void onClick(View view){
            getNews();
        }
    });
以及错误日志

02-26 16:06:42.218: W/dalvikvm(478): threadid=1: thread exiting with uncaught exception (group=0x40014760)
02-26 16:06:42.247: E/AndroidRuntime(478): FATAL EXCEPTION: main
02-26 16:06:42.247: E/AndroidRuntime(478): android.os.NetworkOnMainThreadException
02-26 16:06:42.247: E/AndroidRuntime(478):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077)
02-26 16:06:42.247: E/AndroidRuntime(478):  at java.net.InetAddress.lookupHostByName(InetAddress.java:477)
02-26 16:06:42.247: E/AndroidRuntime(478):  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:277)
02-26 16:06:42.247: E/AndroidRuntime(478):  at java.net.InetAddress.getAllByName(InetAddress.java:249)
02-26 16:06:42.247: E/AndroidRuntime(478):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
02-26 16:06:42.247: E/AndroidRuntime(478):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
02-26 16:06:42.247: E/AndroidRuntime(478):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
02-26 16:06:42.247: E/AndroidRuntime(478):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
02-26 16:06:42.247: E/AndroidRuntime(478):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
02-26 16:06:42.247: E/AndroidRuntime(478):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
02-26 16:06:42.247: E/AndroidRuntime(478):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
02-26 16:06:42.247: E/AndroidRuntime(478):  at pirelli.app.ScanBarcode.getNews(ScanBarcode.java:46)
02-26 16:06:42.247: E/AndroidRuntime(478):  at pirelli.app.ScanBarcode.access$4(ScanBarcode.java:42)
02-26 16:06:42.247: E/AndroidRuntime(478):  at pirelli.app.ScanBarcode$5.onClick(ScanBarcode.java:164)
02-26 16:06:42.247: E/AndroidRuntime(478):  at android.view.View.performClick(View.java:3110)
02-26 16:06:42.247: E/AndroidRuntime(478):  at android.view.View$PerformClick.run(View.java:11934)
02-26 16:06:42.247: E/AndroidRuntime(478):  at android.os.Handler.handleCallback(Handler.java:587)
02-26 16:06:42.247: E/AndroidRuntime(478):  at android.os.Handler.dispatchMessage(Handler.java:92)
02-26 16:06:42.247: E/AndroidRuntime(478):  at android.os.Looper.loop(Looper.java:132)
02-26 16:06:42.247: E/AndroidRuntime(478):  at android.app.ActivityThread.main(ActivityThread.java:4123)
02-26 16:06:42.247: E/AndroidRuntime(478):  at java.lang.reflect.Method.invokeNative(Native Method)
02-26 16:06:42.247: E/AndroidRuntime(478):  at java.lang.reflect.Method.invoke(Method.java:491)
02-26 16:06:42.247: E/AndroidRuntime(478):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
02-26 16:06:42.247: E/AndroidRuntime(478):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
02-26 16:06:42.247: E/AndroidRuntime(478):  at dalvik.system.NativeStart.main(Native Method)

如果您在El Goog中查找“NetworkOnMainThreadException”,首先会得到指向的链接。它声明这个异常是因为Api级别11(Honeycomb 3.0),这就是为什么您以前没有得到它。它甚至还链接到“响应性设计”页面。正如一些评论员所建议的那样,进行网络操作的正确方法是通过异步任务

如果您在El Goog中查找“NetworkOnMainThreadException”,首先会得到指向的链接。它声明这个异常是因为Api级别11(Honeycomb 3.0),这就是为什么您以前没有得到它。它甚至还链接到“响应性设计”页面。正如一些评论员所建议的那样,进行网络操作的正确方法是通过异步任务

没有以正确的格式返回JSON。如果正确的话,我认为只要你想返回HTML字符串作为响应,你就应该使用CDATA。在谷歌上搜索
android.os.NetworkOnMainThreadException
太懒了?我会试试的,但我仍然不明白,在我的姜饼应用程序上,完全相同的代码是如何工作的,该应用程序已经面世且功能正常了……只需使用AsyncTask,而不用在main上执行网络操作thread@Selvin谢谢你,不,我不太懒…我希望有更多经验的人能帮我,因为我是自己编写代码的,没有其他人可以问……这是一个论坛,没有以正确的格式返回JSON。如果正确的话,我认为只要你想返回HTML字符串作为响应,你就应该使用CDATA。在谷歌上搜索
android.os.NetworkOnMainThreadException
太懒了?我会试试的,但我仍然不明白,在我的姜饼应用程序上,完全相同的代码是如何工作的,该应用程序已经面世且功能正常了……只需使用AsyncTask,而不用在main上执行网络操作thread@Selvin谢谢你,不,我不太懒…我希望有更多经验的人能帮我,因为我自己编写代码,没有其他人可以问…这是一个这样的论坛。是的,我现在正在这样做。谢谢你花时间回答。是的,我现在正在做。感谢您抽出时间回答。