问题标签 [networkonmainthread]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android AsyncTask 在第二次调用时获取 NetworkOnMainThreadException
我在我的应用程序中从 Parse.com 获取一些数据当它第一次启动时,它会检查缓存是否可用并显示它,然后用户可以拉动刷新以获取最新数据 当调用第一个刷新操作时,一切正常,但是当我第二次尝试刷新时,我得到 NetworkOnMainThreadException 强制关闭
这是调用方法(我正在使用 Android 支持的滑动刷新视图)
这是异步任务
即使我在应用程序启动时强制下载,它总是第二次下拉使其崩溃,而不是第二次下载某些东西
请不要建议关闭 NetworkOnMainThread 严格规则,这不是解决方案
编辑:这是logcat
android - AsyncTask 中的 NetworkOnMainThreadException
我正在NetworkOnMainThreadException
执行两个网络请求AsyncTask
。在第一个请求中,我得到了Response XML
,在第二个请求中,我下载了Image InputStream
要在BitmapFactory.decodeStream
. 请在下面找到异常:
NetworkOnMainThreadException
异步任务
谁能告诉我我做错了什么?两个网络请求doInBackground
都不能做?
提前致谢!
编辑完整堆栈跟踪
当从onPostExecute
in which调用的函数InputStream
被传递为:
后执行
java - Parse.initialize 在某些设备上导致 android.os.NetworkOnMainThreadException 异常
我最近开始使用 Parse,我Parse.initialize
从我的应用程序主活动onCreate
方法中调用。在我的设备上它可以正常工作,但是一些尝试过它的用户在被调用android.os.NetworkOnMainThreadException
时得到了响应。在此处查看轨迹跟踪: httpParse.initialize
://crashes.to/s/fbe1eda87a0
我尝试将 Parse 初始化代码移至AsyncTask
,因此它不会在主 UI 线程上运行;但这导致应用程序崩溃,因为 Parse SDK 的另一部分正在尝试执行操作,但 SDK 尚未初始化(我无法控制该部分)。
在此期间,我已将电话移至Parse.initialize
,Application.onCreate
但不确定应该如何更好。
有没有其他人遇到过这个问题并知道如何解决它?
android - 如何传递代码中出现的 NetworkOnMainThreadException 异常?
我又被困住了,需要你们的帮助。从我的服务获取响应时,我收到 NetworkOnMainThreadException 异常。我还在学习 Android,所以不知道 Android 中线程的具体内容。任何有关解释和工作示例的帮助都会很棒。在此先感谢,你们是很棒的帮助。
我的活动课:
android - 为什么我的活动中有 NetworkOnMainThreadException?
我有一个下载文件的活动,并且在执行该活动一段时间后,我在 onPostExecute() 上收到了 NetworkOnMainThreadException。该文件也没有完全下载。我找不到我错的地方。这是我的代码:
android - android.os.NetworkOnMainThreadException 用于专业 Android 4 应用程序开发中的第 6 章地震示例
像很多人一样,我在尝试使用第 6 章地震示例时遇到了 NetworkOnMainThreadException。我从书中输入了代码(见下文),我认为这应该可以解决这个问题,因为网络活动不再发生在 UI 线程上。
那么谁能看到我在这里做错了什么?我意识到更好的解决方案是完全使用不同的代码,例如 AsyncTasks 或 Services,但我真的想知道代码有什么问题?
如果相关,我的清单的最小 SDK 为 11,目标 SDK 为 19。
android - android.os.NetworkOnMainThreadException 在 android 中使用 Jackson
我的问题是 android.os.NetworkOnMainThreadException。我已经在堆栈溢出中查看了一些答案,但我无法解决它。
首先,我使用 Jackson 将 JSON 的信息绑定到 Java 对象中。由于杰克逊,有人已经遇到过 NetworkOnMainThread 的问题吗?
我将这种方式转换为 PublicidadeBO 类:
然后在另一个 Activity 类中:
提前致谢。
java - Android:AsyncTask 中的 NetworkOnMainThreadException 错误
好的,所以我创建了一个扩展 AsycTask 的内部类,以便我的代码与 UI 线程一起运行。但是我收到了这个错误,所以我认为这意味着我的 onPostExecute 的某些部分需要在 doInBackground 中完成但是我无法弄清楚这是什么
如果有人能指出我的错误并展示一个示例,说明我的 doInBackground 中的代码应该放在哪里,那就太好了。谢谢
php - 将 mySQL 与 Android 连接
我希望能够使用我的 android 设备连接到 mySQL 数据库,发送将在 SQL 语句中使用的参数,并且我希望返回结果并能够呈现它。这听起来很简单,但我能找到的所有教程和示例都受到以下问题的影响:
- 极度过度构建(至少 10 个类才能制作出完美的按钮)
- 令人难以置信的混乱(没有评论、解释和迟钝的变量名称)
- 依赖于不存在的类
如果我去掉一些不必要的东西,一切都会崩溃,所以我无法提取真正重要的东西以使其远程可读/可理解。
因此,以最简单的方式:我的 android 应用程序需要什么来连接到我的数据库?如何向 php-script 发送参数?如何从中生成 android 应用程序可以读取的结果?
更新,剥离必需品 1 因此,正如我在对 SoftCoder 的回答的评论之一中提到的,我将尝试使用他的完整应用程序并去掉花哨的东西,以获得连接到 mySQL 所需的东西。
首先,我已<uses-permission android:name="android.permission.INTERNET" />
在清单中添加。.php 看起来像这样(主机、用户、密码等实际上是另一回事):
此脚本打印出表中的所有条目。
现在到完整的活动!
所以这就是我迄今为止想出的“尽可能简单”,没有花哨的 UI 或在方法之间跳转(使用良好的代码约定在这里并不重要)。由于就像其他人已经说过的那样,一切都会因“NetworkOnMainThreadException”而崩溃,因此无法对其进行测试。即使我同时使用 AsyncTask 并调用 Strict-thingy,为什么它会因此异常而崩溃?
android - 小部件更新服务无法正常工作
当我尝试从我的 Web 服务器获取 SOAP 响应时,我的小部件更新服务抛出:“android.os.NetworkOnMainThreadException”。
我确信 SOAP 代码没有错误,因为我只通过 IntentService 而不是 Service 在应用程序中使用相同的代码。
我根据最后一个示例设计了我的小部件:http ://www.vogella.com/tutorials/AndroidWidgets/article.html
错误代码: 08-26 19:22:14.931: W/System.err(16244): android.os.NetworkOnMainThreadException 08-26 19:22:14.936: W/System.err(16244): 在 android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1125) 08-26 19:22:14.941: W/System.err( 16244): 在 java.net.InetAddress.lookupHostByName(InetAddress.java:385) 08-26 19:22:14.941: W/System.err(16244): 在 java.net.InetAddress.getAllByNameImpl(InetAddress.java:236 ) 08-26 19:22:14.941: W/System.err(16244): 在 java.net.InetAddress.getAllByName(InetAddress.java:214) 08-26 19:22:14.941: W/System.err(16244 ): 在 libcore.net.http.HttpConnection.(HttpConnection.java:70) 08-26 19:22:14.941: W/System.err(16244): 在 libcore.net.http.HttpConnection.(HttpConnection.java: 50) 08-26 19:22:14.941: W/System.err(16244): 在 libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340) 08-26 19:22:14.941: W/ System.err(16244):在 libcore.net.http.HttpConnectionPool。获取(HttpConnectionPool.java:87)08-26 19:22:14.941:W/System.err(16244):在 libcore.net.http.HttpConnection.connect(HttpConnection.java:128)08-26 19:22: 14.956: W/System.err(16244): 在 libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316) 08-26 19:22:14.956: W/System.err(16244): 在 libcore.net .http.HttpEngine.connect(HttpEngine.java:311) 08-26 19:22:14.956: W/System.err(16244): 在 libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290) 08- 26 19:22:14.961: W/System.err(16244): 在 libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240) 08-26 19:22:14.961: W/System.err(16244) : 在 libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81) 08-26 19:22:14.961: W/System.err(16244): 在 libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java :197) 08-26 19:22:14.961: W/System.err(16244): 在 org.ksoap2.transport.ServiceConnectionSE.openOutputStream(ServiceConnectionSE.java:120) 08-26 19:22:14.961: W/System.err(16244): 在 org.ksoap2 .transport.HttpTransportSE.call(HttpTransportSE.java:176) 08-26 19:22:14.961: W/System.err(16244): 在 org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:114) 08-26 19:22:14.961: W/System.err(16244): 在 com.aek.callstatistics.UpdateWidgetService.soapGetOperators(UpdateWidgetService.java:280) 08-26 19:22:14.961: W/System.err( 16244): 在 com.aek.callstatistics.UpdateWidgetService.callLogUpdate(UpdateWidgetService.java:245) 08-26 19:22:14.966: W/System.err(16244): 在 com.aek.callstatistics.UpdateWidgetService$1.done(更新小部件服务.java:481)