У меня есть эта странная проблема. Я извлекаю твиттеры, и он работает на эмуляторе, а также на моей Samsung Galaxy S, но он не работает на моей Galaxy Tab 10.1?
Такое же приложение установлено как на телефоне, так и на вкладке. Создано из Eclipse, поэтому нет отладки или чего-то еще.
Необходимы разные разрешения?
Это код:
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(searchUrl);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
responseBody = client.execute(get, responseHandler);
и это проявление:
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Клянусь, этот вопрос задают каждый день здесь, в StackOverflow. :)
Проблема в том, что вы выполняете сетевой доступ к основному потоку пользовательского интерфейса. Android 3.0 и выше приведет к сбою приложения (то есть система будет генерировать исключение NetworkAccessOnMainThread
), если вы попытаетесь выполнить HTTP-запрос в основном потоке. Вам нужно обернуть свой HTTP-запрос в AsyncTask
(или Thread
of some AsyncTask
), чтобы убедиться, что вы не блокируете поток пользовательского интерфейса.
Читайте мой блог на эту тему:
Используйте этот код, он работает для меня.
if (android.os.Build.VERSION.SDK_INT > 8) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}