Android Error: android.os.NetworkOnMainThreadException

解决NetworkOnMainThreadException
本文介绍了如何解决在Android开发过程中遇到的NetworkOnMainThreadException异常。该异常通常发生在UI主线程中进行网络访问时。解决方法是创建子线程来处理网络请求。

android.os.NetworkOnMainThreadException,这个是因为在UI主线程中访问网络引起的。
解决:
创建子线程。

I/PCLog_: [com.naz.label.util.ActivityLifecycleUtils$FLC.onFragmentPaused(ActivityLifecycleUtils.java:178)] f-->ReaderCfgFragment{9c646c5} (d088ffd2-e5cc-4038-b466-a21015651526) id=0xffffffff} I/PCLog_: [com.naz.label.util.ActivityLifecycleUtils$FLC.onFragmentViewDestroyed(ActivityLifecycleUtils.java:186)] f-->ReaderCfgFragment{9c646c5} (d088ffd2-e5cc-4038-b466-a21015651526) id=0xffffffff} I/PCLog_: [com.naz.label.util.ActivityLifecycleUtils$FLC.onFragmentPaused(ActivityLifecycleUtils.java:178)] f-->SelectTagFragment{3903f2f} (68ef1e25-34ae-410b-bf3c-1c3b56b6fccb) id=0xffffffff} I/PCLog_: [com.naz.label.util.ActivityLifecycleUtils$FLC.onFragmentViewDestroyed(ActivityLifecycleUtils.java:186)] f-->SelectTagFragment{3903f2f} (68ef1e25-34ae-410b-bf3c-1c3b56b6fccb) id=0xffffffff} W/m.uhf.rfid.deme: Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (unsupported,core-platform-api, reflection, allowed) Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (unsupported,core-platform-api, reflection, allowed) Accessing hidden method Ldalvik/system/CloseGuard;->warnIfOpen()V (unsupported,core-platform-api, reflection, allowed) D/CompatibilityChangeReporter: Compat change id reported: 247079863; UID 10123; state: DISABLED D/TrafficStats: tagSocket(103) with statsTag=0xffffffff, statsUid=-1 W/m.uhf.rfid.deme: Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setUseSessionTickets(Z)V (max-target-q,core-platform-api, reflection, allowed) W/m.uhf.rfid.deme: Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setHostname(Ljava/lang/String;)V (max-target-q,core-platform-api, reflection, allowed) Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setAlpnProtocols([B)V (max-target-q,core-platform-api, reflection, allowed) W/m.uhf.rfid.deme: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getAlpnSelectedProtocol()[B (max-target-q,core-platform-api, reflection, allowed) W/m.uhf.rfid.deme: Got a deoptimization request on un-deoptimizable method java.lang.Object java.lang.Class.newInstance() W/m.uhf.rfid.deme: Got a deoptimization request on un-deoptimizable method java.net.InetAddress[] libcore.io.Linux.android_getaddrinfo(java.lang.String, android.system.StructAddrinfo, int) D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main Process: com.uhf.rfid.deme, PID: 24085 android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1675) at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115) at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103) at java.net.InetAddress.getAllByName(InetAddress.java:1152) at com.android.okhttp.Dns$1.lookup(Dns.java:41) at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:178) at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:144) at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:86) at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:176) at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128) at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:542) at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:106) at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:30) at com.naz.label.fragments.home.cow.CowFragment.onViewCreated(CowFragment.java:67) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:322) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1185) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1354) at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1432) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1495) at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447) at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2167) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1990) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1945) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1847) at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413) at android.os.Handler.handleCallback(Handler.java:1003) at android.os.Handler.dispatchMessage(Handler.java:108) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:294) at android.app.ActivityThread.main(ActivityThread.java:8214) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1187) E/PCLog_: catchInfo-------------> [com.naz.label.ErrorReport.handleException(ErrorReport.java:51)] android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1675) at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115) at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103) at java.net.InetAddress.getAllByName(InetAddress.java:1152) at com.android.okhttp.Dns$1.lookup(Dns.java:41) at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:178) at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:144) at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:86) at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:176) at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128) at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:542) at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:106) at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:30) at com.naz.label.fragments.home.cow.CowFragment.onViewCreated(CowFragment.java:67) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:322) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1185) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1354) at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1432) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1495) at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447) at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2167) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1990) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1945) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1847) at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413) at android.os.Handler.handleCallback(Handler.java:1003) at android.os.Handler.dispatchMessage(Handler.java:108) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:294) at android.app.ActivityThread.main(ActivityThread.java:8214) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1187) D/module_manager: Opening value = 0 devNo = 0 D/module_manager: Open success! fd = 112--1 type = 1-0 ret = 1 D/serial_port: close(fd = 113) I/m.uhf.rfid.deme: type=1400 audit(0.0:7570): avc: denied { ioctl } for path="/dev/rfid" dev="tmpfs" ino=651 ioctlcmd=0xf402 scontext=u:r:untrusted_app_27:s0:c123,c256,c512,c768 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1 app=com.uhf.rfid.deme I/PCLog_: [com.naz.label.util.ActivityLifecycleUtils.finishAll(ActivityLifecycleUtils.java:76)] finishAll->[] I/m.uhf.rfid.deme: System.exit called, status: 0 I/AndroidRuntime: VM exiting with result code 0, cleanup skipped. Disconnected from the target VM, address: 'localhost:56646', transport: 'socket' 这个报错代码是在执行到int responseCode = connection.getResponseCode();这句代码发生的,请问这是怎么回事,怎么处理
09-27
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值