Java Android.os.NetworkOnMainThreadException错误

Java Android.os.NetworkOnMainThreadException错误,java,php,android,Java,Php,Android,当我运行Android应用程序时,我得到了一个Android.os.NetworkOnMainThreadException错误。我还向清单文件添加了INTERNET权限,但它仍然显示此错误。请帮忙给我一些建议。谢谢 这是我的日志 03-06 11:40:55.721:W/dalvikvm(2142):threadid=1:线程以未捕获异常退出(组=0x40014760) 03-06 11:40:55.740:E/AndroidRuntime(2142):致命异常:主 03-06 11:40:

当我运行Android应用程序时,我得到了一个Android.os.NetworkOnMainThreadException错误。我还向清单文件添加了INTERNET权限,但它仍然显示此错误。请帮忙给我一些建议。谢谢

这是我的日志
03-06 11:40:55.721:W/dalvikvm(2142):threadid=1:线程以未捕获异常退出(组=0x40014760)
03-06 11:40:55.740:E/AndroidRuntime(2142):致命异常:主
03-06 11:40:55.740:E/AndroidRuntime(2142):android.os.NetworkOnMainThreadException
03-06 11:40:55.740:E/AndroidRuntime(2142):在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077)
03-06 11:40:55.740:E/AndroidRuntime(2142):在dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:368)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:208)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:431)
03-06 11:40:55.740:E/AndroidRuntime(2142):在java.net.Socket.connect(Socket.java:901)上
03-06 11:40:55.740:E/AndroidRuntime(2142):位于org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:143)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于com.example.testexternaldatabase.JSONParser.makeHttpRequest(JSONParser.java:62)
03-06 11:40:55.740:E/AndroidRuntime(2142):在com.example.testexternaldatabase.EditTicketActivity$GetProductDetails$1.run(EditTicketActivity.java:135)
03-06 11:40:55.740:E/AndroidRuntime(2142):在android.os.Handler.handleCallback(Handler.java:587)上
03-06 11:40:55.740:E/AndroidRuntime(2142):在android.os.Handler.dispatchMessage(Handler.java:92)上
03-06 11:40:55.740:E/AndroidRuntime(2142):在android.os.Looper.loop(Looper.java:132)上
03-06 11:40:55.740:E/AndroidRuntime(2142):位于android.app.ActivityThread.main(ActivityThread.java:4025)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于java.lang.reflect.Method.Invokenactive(本机方法)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于java.lang.reflect.Method.invoke(Method.java:491)
03-06 11:40:55.740:E/AndroidRuntime(2142):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
03-06 11:40:55.740:E/AndroidRuntime(2142):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
03-06 11:40:55.740:E/AndroidRuntime(2142):在dalvik.system.NativeStart.main(本机方法)
这是我的get\u message\u details.php文件。该文件将作为JSON数组接受输入,消息表将被更新。

您不应该在
Asynctask
doInBackground()
方法中使用UI元素。将所有UI更新代码移动到
onPostExecute()
异步任务的方法

您可以参考的示例


使用asynctask的目的是在UI线程以外的另一个线程上执行任务,但您在
doInBackground
方法中使用的是
runOnUiThread(
),这违背了它的目的(因此出现NetworkOnMainThread错误)。在
doInBackground
中执行繁忙的操作,并在
onPostExecute
方法中更新UI。因此,我必须删除runOnUiThread(new Runnable())