- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
try{
String stringURL = ""; ///some url
URL url = new URL(stringURL);
Reader reader = new InputStreamReader(url.openStream());
user = new Gson().fromJson(reader, User.class);
}
catch (MalformedURLException e)
{
}
catch (IOException e)
{
}
当我尝试在 android 4.0.3 url.openStream() 上解析 json 响应时,它崩溃了。但是,在 2.3.3 上它是有效的。
堆栈跟踪
05-05 02:43:07.259: D/WebSettings(2172): mDataPath: /data/data/com.example.myvk
05-05 02:43:07.560: W/dalvikvm(2172): threadid=1: thread exiting with uncaught exception (group=0x40c661f8)
05-05 02:43:07.580: E/AndroidRuntime(2172): FATAL EXCEPTION: main
05-05 02:43:07.580: E/AndroidRuntime(2172): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myvk/com.example.myvk.WallActivity}: android.os.NetworkOnMainThreadException
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.app.ActivityThread.access$600(ActivityThread.java:123)
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.os.Handler.dispatchMessage(Handler.java:99)
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.os.Looper.loop(Looper.java:137)
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.app.ActivityThread.main(ActivityThread.java:4424)
05-05 02:43:07.580: E/AndroidRuntime(2172): at java.lang.reflect.Method.invokeNative(Native Method)
05-05 02:43:07.580: E/AndroidRuntime(2172): at java.lang.reflect.Method.invoke(Method.java:511)
05-05 02:43:07.580: E/AndroidRuntime(2172): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
05-05 02:43:07.580: E/AndroidRuntime(2172): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
05-05 02:43:07.580: E/AndroidRuntime(2172): at dalvik.system.NativeStart.main(Native Method)
05-05 02:43:07.580: E/AndroidRuntime(2172): Caused by: android.os.NetworkOnMainThreadException
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1105)
05-05 02:43:07.580: E/AndroidRuntime(2172): at java.net.InetAddress.lookupHostByName(InetAddress.java:391)
05-05 02:43:07.580: E/AndroidRuntime(2172): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
05-05 02:43:07.580: E/AndroidRuntime(2172): at java.net.InetAddress.getAllByName(InetAddress.java:220)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:71)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:460)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:432)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
05-05 02:43:07.580: E/AndroidRuntime(2172): at libcore.net.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:270)
05-05 02:43:07.580: E/AndroidRuntime(2172): at com.example.myvk.WallActivity.loadProfile(WallActivity.java:73)
05-05 02:43:07.580: E/AndroidRuntime(2172): at com.example.myvk.WallActivity.onCreate(WallActivity.java:33)
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.app.Activity.performCreate(Activity.java:4465)
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
05-05 02:43:07.580: E/AndroidRuntime(2172): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
05-05 02:43:07.580: E/AndroidRuntime(2172): ... 11 more
最佳答案
这可能是由于在 Honeycomb 中引入的 NetworkOnMainThreadException
异常。要解决此问题,您应该在单独的线程中执行所有与网络相关的工作(为了方便,您可以使用 AsyncTask
)。
有关更多信息,您可以阅读这篇博文:http://www.androiddesignpatterns.com/2012/06/app-force-close-honeycomb-ics.html
关于java - 应用程序在 android 4.0.3 上使用 url.openStream() 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16379434/
我今天做了一个测试,结果很奇怪。我使用下面的代码并测试了一些网页。 long start = System.nanoTime(); URL url = new URL("http://wp.pl");
我有一个网络应用程序试图从另一个网络应用程序下载文件。 当我的 webapp 运行在本地时,从另一个 webapp(部署在 tomcat6 服务器中)的下载速度非常快。然后当我部署我的 webapp(
我在 Java 中使用 openStream 方法 in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
我编写这个方法来下载给定 URL 的网页。它被设计为仅下载 HTML。如果我想进行错误检查并仅允许 HTML,我应该怎么做? public static String download(URL url
我有以下代码,但是当我运行它时出现异常 "SocketTimeoutException" at openStream. 代码: String urlStr = "https://www.nse-ind
当我尝试阅读 json text 时,这是一个明显的问题来自网址。我在URLReader中进行了测试的main函数它返回文本很好。但是当我在线程中调用类外部的方法时,IDE没有报告任何Exceptio
请帮我解决这个问题,我正在尝试编写一段代码来使用 Apache FOP 生成 PDF。我开发了 XSL-FO,它位于应用程序的资源文件夹中,即 src/main/resource。现在,当我通过 Ju
我是 Java 的新手,但真的想在这方面做得更好。我正在尝试编写一个简单的 RSS 阅读器。这是代码: import java.io.*; import java.net.*; public clas
根据文档,它返回一个 InputStream。但也根据文档, InputStream 是一个抽象类。那么 .openStream() 返回哪个特定的子类? 最佳答案 封装的要点就是你不知道也不关心。
我首先尝试在这里检查 URL 上的文件是否存在,如果存在则下载它。但这让我很困惑 线程“main”sun.net.ftp.FtpProtocolException 中出现异常:欢迎消息:421 来自此
我使用 java.net.URL.openStream() 方法从服务器检索内容。我最近遇到了一个问题,HTTP 响应代码指示错误,但没有抛出异常,流仍然被读取。这导致错误在执行过程中出现得更晚,并被
我有一段代码可以读取 url 页面内容,这段代码适用于许多页面,但不适用于某些页面,例如下面的链接: http://www.sciencedirect.com/science/article/pii/
我正在从 SQL 数据库下载一张图片到 Android 设备上;一切正常,除了打开流需要很长时间(即使没有图片下载)。实际下载开始前大约需要 5 秒。这是我的代码 fragment : URL url
本文整理了Java中loci.common.ZipHandle.openStream()方法的一些代码示例,展示了ZipHandle.openStream()的具体用法。这些代码示例主要来源于Gith
默认 url.openStream();使用 IPv6。我的学校服务器默默地阻止 IPv6。这会导致 url.openStream();挂起 3 分 15 秒。有没有办法让 url.openStrea
我在 Android 上有一些使用 URL.openStream 的代码。出于内部测试目的,我需要能够将其指向使用私有(private) CA 的服务器。我们已经拥有 PEM 格式的 CA bundl
我似乎无法弄清楚这一点。我正在加载一个只有一个重定向的 URL,当只有一个重定向时 Android 会抛出“太多重定向”,并且它在浏览器中工作。这是一个简化的代码 fragment : URL url
编辑:我知道 Thread.interrupt() 的作用。 while (!Thread.currentThread().isInterrupted()) 在我中断线程时不退出。 我还尝试从 url
Tomcat 服务器 (5.5.28) 启动后,我正在执行以下行。 URL url = new URL("http://localhost:80/servlets/ConnectionCheckSe
是否可以向我的 URL().openStream() 添加代理? scanner = new Scanner(new URL(url).openStream()); 我的代理有用户和密码 最佳答案 也
我是一名优秀的程序员,十分优秀!