问题标签 [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.

0 投票
3 回答
341 浏览

android - Android AsyncTask 在第二次调用时获取 NetworkOnMainThreadException

我在我的应用程序中从 Parse.com 获取一些数据当它第一次启动时,它会检查缓存是否可用并显示它,然后用户可以拉动刷新以获取最新数据 当调用第一个刷新操作时,一切正常,但是当我第二次尝试刷新时,我得到 NetworkOnMainThreadException 强制关闭

这是调用方法(我正在使用 Android 支持的滑动刷新视图)

这是异步任务

即使我在应用程序启动时强制下载,它总是第二次下拉使其崩溃,而不是第二次下载某些东西

请不要建议关闭 NetworkOnMainThread 严格规则,这不是解决方案

编辑:这是logcat

0 投票
4 回答
899 浏览

android - AsyncTask 中的 NetworkOnMainThreadException

我正在NetworkOnMainThreadException执行两个网络请求AsyncTask。在第一个请求中,我得到了Response XML,在第二个请求中,我下载了Image InputStream要在BitmapFactory.decodeStream. 请在下面找到异常:

NetworkOnMainThreadException

异步任务

谁能告诉我我做错了什么?两个网络请求doInBackground都不能做?

提前致谢!

编辑完整堆栈跟踪

当从onPostExecutein which调用的函数InputStream被传递为:

后执行

0 投票
1 回答
278 浏览

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.initializeApplication.onCreate但不确定应该如何更好。

有没有其他人遇到过这个问题并知道如何解决它?

0 投票
2 回答
107 浏览

android - 如何传递代码中出现的 NetworkOnMainThreadException 异常?

我又被困住了,需要你们的帮助。从我的服务获取响应时,我收到 NetworkOnMainThreadException 异常。我还在学习 Android,所以不知道 Android 中线程的具体内容。任何有关解释和工作示例的帮助都会很棒。在此先感谢,你们是很棒的帮助。

我的活动课:

0 投票
1 回答
114 浏览

android - 为什么我的活动中有 NetworkOnMainThreadException?

我有一个下载文件的活动,并且在执行该活动一段时间后,我在 onPostExecute() 上收到了 NetworkOnMainThreadException。该文件也没有完全下载。我找不到我错的地方。这是我的代码:

0 投票
1 回答
163 浏览

android - android.os.NetworkOnMainThreadException 用于专业 Android 4 应用程序开发中的第 6 章地震示例

像很多人一样,我在尝试使用第 6 章地震示例时遇到了 NetworkOnMainThreadException。我从书中输入了代码(见下文),我认为这应该可以解决这个问题,因为网络活动不再发生在 UI 线程上。

那么谁能看到我在这里做错了什么?我意识到更好的解决方案是完全使用不同的代码,例如 AsyncTasks 或 Services,但我真的想知道代码有什么问题?

如果相关,我的清单的最小 SDK 为 11,目标 SDK 为 19。

0 投票
2 回答
700 浏览

android - android.os.NetworkOnMainThreadException 在 android 中使用 Jackson

我的问题是 android.os.NetworkOnMainThreadException。我已经在堆栈溢出中查看了一些答案,但我无法解决它。

首先,我使用 Jackson 将 JSON 的信息绑定到 Java 对象中。由于杰克逊,有人已经遇到过 NetworkOnMainThread 的问题吗?

我将这种方式转换为 PublicidadeBO 类:

然后在另一个 Activity 类中:

提前致谢。

0 投票
2 回答
152 浏览

java - Android:AsyncTask 中的 NetworkOnMainThreadException 错误

好的,所以我创建了一个扩展 AsycTask 的内部类,以便我的代码与 UI 线程一起运行。但是我收到了这个错误,所以我认为这意味着我的 onPostExecute 的某些部分需要在 doInBackground 中完成但是我无法弄清楚这是什么

如果有人能指出我的错误并展示一个示例,说明我的 doInBackground 中的代码应该放在哪里,那就太好了。谢谢

0 投票
1 回答
4577 浏览

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,为什么它会因此异常而崩溃?

0 投票
1 回答
65 浏览

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)