StrictMode$AndroidBlockGuardPolicy.onNetwork は android.os の下でエラーになります。
今日、AndroidでhttpClientを使ってWebページの内容を取得しようとしたら、httpClientでエラーが発生しました。
android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145), libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84 ), libcore.io.IoBridge.connectErrno(IoBridge.java:127), libcore.io.IoBridge.connect(IoBridge.java:112), java.net.PlainSocketImpl.Connect(iocon), libcore.IoBridge(Iocon), android.os.StrictMode(Iocon), android.os.StrictMode(Iocon), android.os.StrictMode(Iocon), libcore.os.IoBridge(Iocon) connect(PlainSocketImpl.java:192), java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459), java.net.Socket.connect(Socket.java:843), org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119), org.apache.http.impl.conn.Connect(PlainSocketImpl.java:193), java.net.PlainSocket.Connect(PlainSockets.JAVA:193),org.apache.http.Impl.JAVA:193),org.http.Impl.JAVA.JAVA:193) DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144), org.apache.http.impl.conn. AbstractPoolEntry.open(AbstractPoolEntry.java:164), org.apache.http.impl.conn.AbstractPooledConnAdapter.open( AbstractPooledConnAdapter.java:119), org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360), abstractHttpClient.execute(AbstractHttpClient.java:555), org.apache.http.impl.client.AbstractConnAdapter.java.114, org.appache.http.impl.java:164), org.appache.http.impl.java.java.114, org.appache.http.impl.conn.AbstractPoolerry.java:164) .execute(AbstractHttpCl
Androidの神様に聞いてみると、Androidはもはやメインスレッドでネットワークにアクセスすることはできず、別のスレッドを立ち上げてアクセスする必要があることがわかりました。
方法1.
<スパン <スパン ターゲットアピ (Build.VERSION_CODES. ジンジャーブリード )
サプレスリント ( "NewApi" )
公開 静的 文字列getHtmlByUrl(文字列url){。
StrictMode.ThreadPolicyのpolicy=。
<スパン 新しい StrictMode.ThreadPolicy.Builder().permitAll().build();StrictModeです。 setThreadPolicy (ポリシー)を設定します。
DefaultHttpClient httpClient = new DefaultHttpClient()。
httpClientのアクセスの前に赤で示したコードを追加します。
方法2
javaでスレッドを作成し、スレッド内のhttpClientにアクセスしてネットワークにアクセスします。
関連
-
aapt2エラー:ログを確認する(具体的な原因の探り方)
-
AndroidStudio reports Could not resolve all artifacts for configuration ':app:classpath'.
-
Android のパッケージングに失敗し、Android リソースのリンクに失敗したことを示すプロンプトが表示される
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
エラーが発生しました。ArrayAdapter は、リソース ID が TextView である必要があります。
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
Android ProgressBarのスタイルカラーを変更する
-
Android Get set image.setImageResource(R.drawable.xxx) リソース
-
Android Studioのgitの使用とgitの設定パス
-
android.view.InflateException: バイナリXMLファイル行番号46の例外処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
android.os の NetworkOnMainThreadException。
-
Gradle のエラーです。gradle-core.jar (com.android.tools.build:gradle-core:x.x.x) を見つけられませんでした。
-
AndroidStudio3.0 Error:Execution failed for task ':app:processDebugResources'.
-
android:EMSのプロパティ
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
アプリケーションがメインスレッドで過剰に作業している可能性があります。
-
view.getRootView()の本当の意味とテストについて
-
Android ProgressBarの色を変更する
-
アンドロイドスタジオソフトウェア使用詳細説明書
-
CursorIndexOutOfBoundsException:インデックス -1 が要求されました。