Android 使用JSON类崩溃更新数据库

Android 使用JSON类崩溃更新数据库,android,json,Android,Json,更新类正在崩溃,我无法打开它,而且我不了解日志: 07-17 19:28:22.115: D/dalvikvm(3799): GC_FOR_ALLOC freed 133K, 23% free 12979K/16808K, paused 254ms, total 278ms 07-17 19:28:22.623: D/dalvikvm(3799): GC_FOR_ALLOC freed 15K, 15% free 14345K/16808K, paused 58ms, total 58ms 07

更新类正在崩溃,我无法打开它,而且我不了解日志:

07-17 19:28:22.115: D/dalvikvm(3799): GC_FOR_ALLOC freed 133K, 23% free 12979K/16808K, paused 254ms, total 278ms
07-17 19:28:22.623: D/dalvikvm(3799): GC_FOR_ALLOC freed 15K, 15% free 14345K/16808K, paused 58ms, total 58ms
07-17 19:28:22.666: I/dalvikvm-heap(3799): Grow heap (frag case) to 16.517MB for 2514028-byte allocation
07-17 19:28:22.863: D/dalvikvm(3799): GC_FOR_ALLOC freed <1K, 13% free 16800K/19264K, paused 192ms, total 192ms
07-17 19:28:23.003: D/dalvikvm(3799): GC_CONCURRENT freed 0K, 13% free 16800K/19264K, paused 8ms+24ms, total 147ms
07-17 19:28:23.133: D/dalvikvm(3799): GC_FOR_ALLOC freed 1380K, 13% free 16801K/19264K, paused 57ms, total 58ms
07-17 19:28:23.173: I/dalvikvm-heap(3799): Grow heap (frag case) to 18.916MB for 2514028-byte allocation
07-17 19:28:23.443: D/dalvikvm(3799): GC_CONCURRENT freed <1K, 12% free 19256K/21720K, paused 109ms+10ms, total 269ms
07-17 19:28:28.693: D/AndroidRuntime(3799): Shutting down VM
07-17 19:28:28.703: W/dalvikvm(3799): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
07-17 19:28:28.786: E/AndroidRuntime(3799): FATAL EXCEPTION: main
07-17 19:28:28.786: E/AndroidRuntime(3799): android.os.NetworkOnMainThreadException
07-17 19:28:28.786: E/AndroidRuntime(3799):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at java.net.InetAddress.getAllByName(InetAddress.java:214)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at com.example.ahliaevents.JSONParser.makeHttpRequest(JSONParser.java:62)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at com.example.ahliaevents.EditCard$GetCardDetails$1.run(EditCard.java:131)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at android.os.Handler.handleCallback(Handler.java:725)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at android.os.Handler.dispatchMessage(Handler.java:92)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at android.os.Looper.loop(Looper.java:137)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at android.app.ActivityThread.main(ActivityThread.java:5041)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at java.lang.reflect.Method.invokeNative(Native Method)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at java.lang.reflect.Method.invoke(Method.java:511)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-17 19:28:28.786: E/AndroidRuntime(3799):     at dalvik.system.NativeStart.main(Native Method)
07-17 19:28:33.943: I/Process(3799): Sending signal. PID: 3799 SIG: 9
07-17 19:28:22.115:D/dalvikvm(3799):释放133K,23%释放12979K/16808K,暂停254ms,总计278ms
7-17 19:28:22.623:D/dalvikvm(3799):释放15K的所有物质的GC_,15%释放14345K/16808K,暂停58ms,总计58ms
07-17 19:28:22.666:I/dalvikvm堆(3799):为2514028字节分配将堆(frag案例)增长到16.517MB

07-17 19:28:22.863:D/dalvikvm(3799):GC_FOR_ALLOC freed您将获得
NetWorkOnMainThreadException
。您正在ui线程上执行与网络相关的操作

使用
线程
或使用
异步任务

当应用程序尝试执行异常时引发的异常 在其主线程上进行网络操作。 这仅适用于目标为蜂巢SDK或更高版本的应用程序

您也可以查看本教程

这可以帮助您:

当应用程序尝试在其主线程上执行网络操作时,会引发此类异常。在
AsyncTask
中运行代码:

class AsyncTaskClass extends AsyncTask<String, String, String> {



    protected String doInBackground(String... urls) {

            return null;

    }

    protected void onPostExecute(RSSFeed feed) {

    }
}
不要忘记将此添加到
AndroidManifest.xml
文件:

<uses-permission android:name="android.permission.INTERNET"/>


它现在可以正常打开,但在更新和删除时仍然存在问题,我添加了
StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();StrictMode.setThreadPolicy(策略)成功了fine@SayedQassimSharaf将初始化移动到
onCreate
。还有,为什么在异步任务中使用
runOnUiThread
。进行后台计算,比如从
doinbackground
中的url获取json。返回结果并在
onpostExecute
update ui中执行,因为它是在ui线程上调用的。
new AsyncTaskClass().execute(String);
<uses-permission android:name="android.permission.INTERNET"/>