0

所以我只是创建了一个解析器和一个处理程序来解析一个 XML 文件。它在我的 Java 测试项目中运行良好,但在我的 Android 项目中却不行。这是抱怨日志:

07-12 09:44:59.586: E/AndroidRuntime(1164): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.ec.ec/com.ec.ec.ListeOffresActivity}: android.os.NetworkOnMainThreadException 07- 12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app。 ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app.ActivityThread.access$600(ActivityThread.java:130) 07-12 09:44:59.586 : E/AndroidRuntime(1164): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.os.Handler.dispatchMessage( Handler.java:99) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.os.Looper。循环(Looper.java:137) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app.ActivityThread.main(ActivityThread.java:4745) 07-12 09:44:59.586: E/ AndroidRuntime(1164): at java.lang.reflect.Method.invokeNative(Native Method) 07-12 09:44:59.586: E/AndroidRuntime(1164): at java.lang.reflect.Method.invoke(Method.java: 511) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 07-12 09:44:59.586: E/ AndroidRuntime(1164): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 dalvik.system.NativeStart.main(Native方法)07-12 09:44:59.586:E/AndroidRuntime(1164):由:android.os.NetworkOnMainThreadException 07-12 09:44:59.586:E/AndroidRuntime(1164):在 android.os。StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117) 07-12 09:44:59.586: E/AndroidRuntime(1164): at java.net.InetAddress.lookupHostByName(InetAddress.java:385) 07-12 09:44: 59.586: E/AndroidRuntime(1164): 在 java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 java.net.InetAddress.getAllByName(InetAddress .java:214) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 libcore.net.http.HttpConnection.(HttpConnection.java:70) 07-12 09:44:59.586: E/AndroidRuntime( 1164): 在 libcore.net.http.HttpConnection.(HttpConnection.java:50) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 libcore.net.http.HttpConnection$Address.connect(HttpConnection. java:341) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 libcore.net.http.HttpConnection.connect(HttpConnection.java:128) 07-12 09:44:59.586: E/AndroidRuntime(1164) : 在 libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 libcore.net.http.HttpEngine.connect(HttpEngine.java:310 ) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289) 07-12 09:44:59.586: E/AndroidRuntime(1164):在 libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 java.net.URL.openStream(URL.java:462) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在com.ec.ec.ListeOffresActivity.onCreate(ListeOffresActivity.java:31) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app.Activity.performCreate(Activity.java:5008) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app.ActivityThread .performLaunchActivity(ActivityThread.java:2023) 07-12 09:44:59.586: E/AndroidRuntime(1164): ... 11 更多E/AndroidRuntime(1164): 在 android.app.Activity.performCreate(Activity.java:5008) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java :1079) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 07-12 09:44:59.586: E/AndroidRuntime(1164): ... 11 更多E/AndroidRuntime(1164): 在 android.app.Activity.performCreate(Activity.java:5008) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java :1079) 07-12 09:44:59.586: E/AndroidRuntime(1164): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 07-12 09:44:59.586: E/AndroidRuntime(1164): ... 11 更多

看来我的模拟器没有连接到互联网,对吧?我应该怎么办 ?

谢谢你的帮助

4

2 回答 2

4

您正在运行您Network request的主 UI 线程。使用AsyncTask执行网络请求。

于 2012-07-12T09:55:04.907 回答
1

日志不是很清楚。但我可以看到以下错误 -

07-12 09:44:59.586: E/AndroidRuntime(1164): 在 java.net.URL.openStream(URL.java:462)

因此,很可能该 URL 无法从模拟器访问,因为您可以从您的 java 代码中访问和解析 XMl。

您可以从模拟器启动浏览器并查看 URL 甚至 Internet 是否可访问?

-数据托盘。

于 2012-07-12T10:02:31.190 回答