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