1

Android 3.2で実行するように設定されたAndroidプロジェクトがあり、メインスレッドでネットワークを使用するライブラリプロジェクトがあり、3,2のSDKバージョンでandroid.os.NetworkOnMainThreadExceptionがスローされます。メイン スレッドでネットワークを使用するハニカム以下の SDK バージョンでは問題ありません: http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

この問題を解決するために、ライブラリ プロジェクトの SDK バージョンを 1.6 に設定しようとしましたが、同じエラーが引き続き発生します。これは Android の通常の動作ですか? それは間違っていませんか?後方互換性についてはどうですか?

編集:メインスレッドでネットワークリクエストを実行すべきではないことはわかっていますが、それを実行するのは私のコードではなく、使用する必要があるライブラリです。ライブラリのコードに触れられない/触れたくありません。これは他社に属する商用 API です。

編集 2:もちろん、そのライブラリの新しい/修正されたバージョンを取得しようとしていますが、それは別の問題です。私の質問は、古い SDK でライブラリをコンパイル/実行する方法はありますか?

4

2 に答える 2

2

肝心なのは、3.0以降のデバイス/エミュレーターで実行しようとすると機能しないということです。AsyncTask を使用する必要があります。

于 2012-08-15T15:00:15.660 に答える
1

使用しているライブラリプロジェクトは、メインスレッドでネットワーク操作を実行しないでください。Androidはこの例外をスローします。これは、そうすることは非常に悪い習慣だからです。

あなたは周りのあなたの方法をハックするべきではありませんNetworkOnMainThreadException; 代わりに、AsyncTaskまたはを使用してネットワーク操作を実行してください。Thread

詳細については、このブログ投稿をお読みください。

于 2012-08-15T15:02:53.600 に答える