2016-04-13 3 views
0

をurlget実行するときに私が得る簡単なURLをexcuteしたい、エラーを取得し、私はクリックイベント内でこのコードを実行する場合は、このリンク http://developer.android.com/reference/java/net/HttpURLConnection.htmlExcute URLが

内のコードを使用:

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:アンドロイドのメソッドを実行できませんでした:onClick.support.v7.app.AppCompatViewInflater $ on(AppCompatViewInflater.java:289) android.view.View.performClick(View.java:) (Handler.java:739) (android.os.Handler.dispatchMessage(Handler.java:21147))にある は、android.os.Handler.handleCallback(Handler.java:739)の にあります。 95)java.lang.reflect.Method.invoke(ネイティブメソッドでandroid.app.ActivityThread.main(ActivityThread.java:5417) でandroid.os.Looper.loop(Looper.java:148) で) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:java.lang。 android.view.View.performClickでandroid.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) (でjava.lang.reflect.Method.invoke(ネイティブメソッド) でreflect.InvocationTargetException View.java:5198)android.os.Handler.handleCallback(Handler.java:739) (Handler.java:739) とandroid.view.View $ PerformClick.run(View.java:21147) とandroid.osで.Handler.dispatchMessage(Handler.java:95)android.os.Looper.loop(Looper.java:148)の とandroid.app.ActivityThread.main(ActivityThread.java:5417) のjava.lang.reflectで.Method.invoke(ネイティブメソッド) 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 (InetAddress.java:215) at com.android.okhttp.internal.Network $ 1.resolveInetAddresses(Network.java: 29)COMでcom.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157) でcom.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188) で。 (ルートソート。 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でcom.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:384) でcom.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433) 。 internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231) com.example.soma.smsserver1.MainActivity $ override.clickMe(MainActivity.java:28) (com.example.soma.smsserver1.MainActivity $ override)。アクセス$ dispatch(MainActivity.jav a) at com.example.soma.smsserver1.MainActivity.clickMe(MainActivity.java:0) at java.lang.reflect.Method.invoke(ネイティブメソッド) android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener .onClick(AppCompatViewInflater.java:284) android.view.View.performClick(View.java:5198) android.view.View $ PerformClick.run(View.java:21147) at android.os.Handler .handleCallback(Handler.java:739) (andler.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) android.app.Activit yThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

+0

[this](http://stackoverflow.com/questions/9413625/android-android-os -networkonmiththreadexception)スレッド。おそらくメイン(UI)スレッドでリクエストを実行しています。 AsyncTaskまたはVolleyライブラリを使用して、バックグラウンドでhttp要求を実行する必要があります。 – Mootpoint

答えて

0

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

あなたは、メインスレッド上でのネットワーク処理できないが、これは、Androidのセキュリティ制限で、AsyncTaskでバックグラウンドサービスをお電話をラップしてみてください、またはスレッド。

あなたはそれがこの通話中にUIをブロックするため、禁止されているMainThread、上のネットワーク要求を行っているProcesses and Threads