この特定の例外について Google を検索したところ、複数の結果が表示されましたが、質問に対する回答が見つかりませんでした。現在、次の方法で一部のサーバーの API にアクセスしています。
// Setup...
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
nameValuePair.add(new BasicNameValuePair("key","value"));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
HttpResponse response = httpClient.execute(httpPost);
String results = EntityUtils.toString(response.getEntity())
もちろん、上記のコードは私が使用しているコードとまったく同じではありません。UI ブロック タスクは、AsyncTask を使用して別のスレッドで実行されます。
このコードが初めて実行されるときは、すべて問題ありません。次に、コードを再度実行すると、次の例外が表示されますが、これは Android 2.2 および 2.3 でのみ発生します (3.0 または 4.0 ではテストしていません)。
Invalid use of SingleClientConnManager: connection still allocated
さて、この質問に対する最も多い回答の 1 つがここにあります: Exception using HttpRequest.execute(): Invalid use of SingleClientConnManager: connection still allocated、試したことはありませんが、その前に、なぜこの例外が発生しないのか疑問に思っています。 Android 4.1でこれを実行するとスローされますか?