2012-07-12 19 views
0

所以我剛創建了一個解析器和一個處理程序來解析XML文件。它在我的Java測試項目中工作正常,但不在我的Android項目中。這裏是抱怨日誌:Android:無法加載我的XML文件和應用程序崩潰

9月7日至12日: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 9時44: 59.586:E/AndroidRuntime(1164):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 07-12 09:44:59.586:E/AndroidRuntime(1164):at android.app.ActivityThread.access $ 600 (ActivityThread.java:130) 07-12 09:44:59.586:E/AndroidRuntime(1164):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1195) 07-12 09:44:59.586:E/AndroidRuntime(1164):at android.os.Handler.dispatchMessage(Handler.java:99) 07-12 09:44:59.586:E/AndroidRuntime(1164):at android.os.Looper.loop(Looper.java:137) 07-12 09:44:59.586:E/AndroidRuntime(1164):at 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):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786) 07-12 09:44:59.586:E/AndroidRuntime(1164):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 07-12 09:44:59.586:E/A ndroidRuntime(1164):at dalvik.system.NativeStart.main(Native Method) 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):在java.net.InetAddress。 lookupHostByName(InetAddress.java:385) 07-12 09:44:59.586:E/AndroidRuntime(1164):at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 07-12 09:44:59.586: E/AndroidRuntime(1164):at java.net.InetAddress.getAllByName(InetAddress.java:214) 07-12 09:44:59.586:E/AndroidRuntime(1164):at libcore.net.http.HttpConnection。(HttpConnection .java:70) 07-12 09:44:59.586:E/AndroidRuntime(1164):at libcore.net.http.H ttpConnection。(HttpConnection.java:50) 07-12 09:44:59.586:E/AndroidRuntime(1164):at libcore.net.http.HttpConnection $ Address.connect(HttpConnection.java:341) 07-12 09 :44:59.586:E/AndroidRuntime(1164):at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87) 07-12 09:44:59.586:E/AndroidRuntime(1164):at libcore.net .http.HttpConnection.connect(HttpConnection.java:128) 07-12 09:44:59.586:E/AndroidRuntime(1164):at 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。 (HttpEngine.java:239) 07-12 09:44:59.586:E/AndroidRuntime -12 09:44:59.586:E/AndroidRuntime(1164):at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168) 07-12 09:44:59.586:E/AndroidRuntime(1164):at java.net.URL.openStream(URL.java:462) 07-12 09:44:59.586:E/AndroidRuntime(1164):at com.ec.e.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):at android.app.Instrumentation.callActivityOnCreate Instrumentation.java:1079) 07-12 09:44:59.586:E/AndroidRuntime(1164):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 07-12 09:44:59.586:E/AndroidRuntime(1164):... 11更多

看來我的模擬器沒有連接到互聯網,對吧?我該怎麼辦 ?

感謝您的幫助

+0

檢查這個論壇的帖子對很多答案 http://stackoverflow.com/questions/2039964/how-to-connect-android-emulator-to-the-internet – najk 2012-07-12 09:56:10

回答

4

您是在主UI線程上運行您的Network request。使用​​來執行網絡請求。

+0

讓你'網絡Request'在'你的AsyncTask的doinBackground'。 – 2012-07-12 09:56:22

1

日誌不是很清晰。但我可以看到下面的錯誤 -

9月7日至12日:44:59.586:E/AndroidRuntime(1164):在java.net.URL.openStream(URL.java:462)

所以最有可能的該URL不能從模擬器中獲得,因爲您可以從Java代碼中訪問和解析XMl。

你可以從你的模擬器啓動瀏覽器,看看是否可以訪問URL甚至互聯網?

-dattatray。

+0

感謝您的回答。我試過了,沒有,互聯網無法訪問。 – Rob 2012-07-12 10:08:27