2016-04-13 13 views
0

時的錯誤我想EXCUTE一個簡單的URL得到,我用這個鏈接裏面的代碼 http://developer.android.com/reference/java/net/HttpURLConnection.htmlEXCUTE網址獲取,執行urlget

我要運行該代碼click事件中:

URL url = new URL("http://www.android.com/"); 
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
    try { 
    InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 
    readStream(in);} 
    finally { 
    urlConnection.disconnect(); 
    } 

當我跑我得到這個長的錯誤應用:

E/AndroidRuntime:致命異常:主要 過程:com.example.soma.smsserver1,PID:20664 java.lang.IllegalStateException:無法執行android的方法:onClick at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:289) at android.view.View.performClick(View.java: 5198) 在android.view.View $ PerformClick.run(View.java:21147) 在android.os.Handler.handleCallback(Handler.java:739) 在android.os.Handler.dispatchMessage(Handler.java: 95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 引起:java.lang。 reflect.vocationTargetException at java.lang.reflect.Method.invoke(Native Method) at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) at android.view.View.performClick( View.java:5198) at android.view.View $ PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os .Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect .Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 產生的原因:在java.net.InetAddress.lookupHostByName(InetAddress.java:431)在android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1273) android.os.NetworkOnMainThreadException 在java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) at java.net.InetAddress.getAllByName(InetAddress.java:215) at com.android.okhttp.internal.Network $ 1.resolveInetAddresses(Network.java: 29) 在com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188) 在com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157) 在融爲一體。 android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100) at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357) at com.android.okhttp.internal。 http.HttpEngine.nextConnection蛋白(Htt pEngine。java:340) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433) 在com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:384) 在com.android.okhttp。 internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231) at com.example.soma.smsserver1.MainActivity $ override.clickMe(MainActivity.java:28) at com.example.soma.smsserver1.MainActivity $ override。訪問$訊(MainActivity.jav a) at com.example.soma.smsserver1.MainActivity.clickMe(MainActivity.java:0) at java.lang.reflect.Method.invoke(Native Method) at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener .onClick(AppCompatViewInflater.java:284) at android.view.View.performClick(View.java:5198) at android.view.View $ PerformClick.run(View.java:21147) at android.os.Handler .handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.Activit yThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

+0

檢查出[這個]上的答案(http://stackoverflow.com/questions/9413625/android-android-os -networkonmainthreadexception)線程。您可能正在主(UI)線程上執行請求。您應該使用AsyncTask或Volley庫在後臺執行http請求。 – Mootpoint

回答

0

android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1273)

你不能處理在主線程聯網,這是Android上的安全限制,嘗試包裝你的電話中的AsyncTask後臺服務,或線程。

請仔細閱讀有關Processes and Threads