2014-03-14 77 views
0

在此先感謝您的幫助!Android:致命異常使用Google地圖時,在URLConnection上調用getInputStream()

我放在一起的請求maps.googleapis(http://maps.googleapis.com/maps/api/directions/json?),並用下面的代碼

this.myURL = new URL(mapsUrl); 
URLConnection conn = myUrl.openConnection(); 
InputStream in = new BufferedInputStream(conn.getInputStream()); 
return in; 

導致這行代碼被掀起onPostResume在MainActivity.java鏈事件調用它(我也嘗試在onActivityResult最初運行它,這並沒有工作,所以我嘗試onPostResume,但都導致相同的錯誤)。下面提供

03-14 02:07:52.123: W/dalvikvm(28964): threadid=1: thread exiting with uncaught exception (group=0x41f88ba8) 
03-14 02:07:52.223: E/AndroidRuntime(28964): FATAL EXCEPTION: main 
03-14 02:07:52.223: E/AndroidRuntime(28964): Process: com.example.BTManager.local, PID: 28964 
03-14 02:07:52.223: E/AndroidRuntime(28964): java.lang.RuntimeException: Unable to resume activity {com.example.BTManager.local/com.example.BTManager.local.MainActivity}: android.os.NetworkOnMainThreadException 
03-14 02:07:52.223: E/AndroidRuntime(28964): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2788) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2817) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at android.os.Handler.dispatchMessage(Handler.java:102) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at android.os.Looper.loop(Looper.java:136) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at android.app.ActivityThread.main(ActivityThread.java:5017) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at java.lang.reflect.Method.invokeNative(Native Method) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at java.lang.reflect.Method.invoke(Method.java:515) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at dalvik.system.NativeStart.main(Native Method) 
03-14 02:07:52.223: E/AndroidRuntime(28964): Caused by: android.os.NetworkOnMainThreadException 
03-14 02:07:52.223: E/AndroidRuntime(28964): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at java.net.InetAddress.lookupHostByName(InetAddress.java:385) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at java.net.InetAddress.getAllByName(InetAddress.java:214) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:179) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.directions.route.XMLParser.getInputStream(XMLParser.java:29) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.directions.route.GoogleParser.parse(GoogleParser.java:32) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at com.example.BTManager.local.MainActivity.onPostResume(MainActivity.java:630) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at android.app.Activity.performResume(Activity.java:5323) 
03-14 02:07:52.223: E/AndroidRuntime(28964): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2778) 
03-14 02:07:52.223: E/AndroidRuntime(28964): ... 10 more 
+0

http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception可能的重複 –

回答

1

您嘗試在主線程加載數據

android.os.NetworkOnMainThreadException 

你必須盡一切一些輔助線程相關的操作網絡

錯誤消息。

herehere學習。

謝謝。