1

最近、2.3をベースにしたAndroidプロジェクトのいくつかを新しい4.0バージョン用にコンパイルするように依頼されました。min SDKそのため、その方法についてあまり知識がなくても、マニフェストファイルにandや。などのいくつかの変更を加えることで自分でやろうとしましたtargeted SDKmin SDK1015targeted SDKに設定しました。それがどういうわけかうまくいくことを期待して、私は自分のコードをテスト実行して、それが私が望むように機能しないことを確認するだけです。もちろん、それはシミュレーターとデバイスの両方で、2.3で本当にうまく機能します。

このプロジェクトをアップグレード/変換して、それをやり直す以外の最新バージョンでコンパイルおよびビルドする方法はありますか?誰か助けてもらえますか?

編集1: 何時間ものトラブルシューティングとオンラインの手がかりの検索の後。これをもう少し深く見ることにしました。私はこの行を見つけました:

DefaultHttpClient client = new MyHttpClient(getApplicationContext());
HttpGet get = new HttpGet(url11);
HttpResponse getResponse = client.execute(get); // 4.0.3 crashes here.... 

問題の原因でした。ここで、2.3.3および4.0.3からAVD Managerを実行してこの問題をテストしましたが、この行は2.3.3でエラーなしでスムーズに実行されていることがわかりました。新しい4.0.3には非推奨か何かがありますか?

4

1 に答える 1

1

ほとんどの場合、メインスレッドでネットワーク操作を実行することが原因です。

AndroidManifest.xmlでtargetSdkVersionが11以上の場合、NetworkOnMainThreadExceptionが発生します。

AsyncTaskまたはAsyncTaskLoaderを使用してバックグラウンドスレッドに移動します。

于 2012-06-07T08:59:27.540 に答える