Неизвестное исключение хоста - PullRequest
0 голосов
/ 25 августа 2011

Совсем недавно я начал получать следующую ошибку от моего виджета. Я не внес никаких изменений, и мне интересно, в чем проблема и как обойти эту проблему. Мой виджет обновляется на основе информации из Службы, которую я создал для доступа к информации от стороннего клиента. Я смог вернуть данные в порядке, пока несколько дней назад. Теперь я получаю сообщение об ошибке ниже.

Я только что попытался запустить код в действии (то есть без виджета), и он работает нормально. Я не уверен, почему это работает в деятельности, но не виджет. У меня также есть доступ к стороннему веб-сайту в отдельном Намерении.

Я попытался перезапустить эмулятор, затмить и перезагрузить устройство. Мой файл манифеста имеет соответствующие разрешения для доступа в Интернет. Изначально проблема была связана с сетью, но я подтвердил, что могу получить доступ к URL-адресу из веб-браузера на эмуляторе и на устройстве. Код просто работал пару дней назад. Я обновил пост своим файлом манифеста. Код не работает прямо перед вызовом parseMyInfo. Исключение выдается во время вызовов OAuth-потребителя / провайдера.

Error

oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:214)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at oauth.signpost.AbstractOAuthProvider.retrieveRequestToken(AbstractOAuthProvider.java:69)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at com.test.community.SG_Service$TED.populate(SG_Service.java:276)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at com.test.community.SG_Service$SGHandler.getTEDData(SG_Service.java:813)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at com.test.community.SG_Service$SGService_BG.onHandleIntent(SG_Service.java:844)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at android.os.Looper.loop(Looper.java:123)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at android.os.HandlerThread.run(HandlerThread.java:60)
08-24 22:36:02.063: ERROR/ARCHOS(541): Caused by: java.net.UnknownHostException: communitymonitorstudy.stepgreen.org
08-24 22:36:02.063: ERROR/ARCHOS(541):     at java.net.InetAddress.lookupHostByName(InetAddress.java:513)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:278)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at java.net.InetAddress.getAllByName(InetAddress.java:242)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at oauth.signpost.commonshttp.CommonsHttpOAuthProvider.sendRequest(CommonsHttpOAuthProvider.java:64)
08-24 22:36:02.063: ERROR/ARCHOS(541):     at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:177)

Код ошибки Код, который не работает, приведен ниже:

HttpClient client = new DefaultHttpClient();

consumer = new CommonsHttpOAuthConsumer(Constants.CONSUMER_KEY, 
Constants.CONSUMER_SECRET);
provider = new CommonsHttpOAuthProvider(Constants.REQUEST_TOKEN_URL,   
Constants.ACCESS_TOKEN_URL, Constants.AUTHORIZE_URL, client);

provider.retrieveRequestToken(consumer, OAuth.OUT_OF_BAND); 

provider.retrieveAccessToken(consumer, null);

MyInfo info = parseMyInfo(userName, consumer, client);

Файл манифеста

<application android:icon="@drawable/icon" android:debuggable="true"  
android:label="@string/app_name" android:name="AppStatus">

<activity android:name=".CommunityMonitorActivity"android:label="@string/app_name">
<intent-filter>
<action android:name="com.cmu.community.CommunityWidget.ACTION_WIDGET_CONFIGURE"/>
</intent-filter>
</activity>

 <activity android:name=".MyInfoActivity"
   android:theme="@style/Theme.D1"
   android:label="@string/my_info"
 />

 <activity android:name=".HomeActivity"
  android:theme="@style/Theme.D1"
  android:label="@string/home"
 />

 <activity android:name=".AboutActivity"
 android:theme="@style/Theme.D1"
 android:label="@string/about"
 />


<receiver android:name=".CommunityWidget" android:label="@string/app_name">
    <intent-filter>
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />

    <action android:name="com.cmu.community.CommunityWidget.ACTION_WIDGET_RECEIVER"/>
    </intent-filter>
   <meta-data android:name="android.appwidget.provider" 
          android:resource="@xml/communitywidgetprovider" />
</receiver>

<receiver android:name="com.cmu.community.Stepgreen_Service$StepgreenReceiver">
    <intent-filter>
        <action android:name="com.cmu.community.ACTION_STEPGREENMANAGER"></action>
    </intent-filter>
</receiver>

  <receiver android:name="com.cmu.community.AppStatus_Service$AppStatusReceiver">
    <intent-filter>
        <action android:name="com.cmu.community.ACTION_APPSTATUSMANAGER"></action>
    </intent-filter>
</receiver>


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-
permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<service android:name="Stepgreen_Service$StepgreenService_BG"></service>
</application>
</manifest>

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Сайт " communitymonitorstudy.stepgreen.org " запущен и работает, я это проверял минуту назад.

Итак

  • либо проблема исчезла и на вашей стороне (пожалуйста, проверьте еще раз), если сайт был закрыт до

  • или у вас возникли проблемы с сетью, которые не позволяют найти хост.

Вы должны проверить с помощью обычного браузера, размещенного на том же устройстве, можете ли вы получить доступ к веб-сайту. Если это так, это означает, что проблема связана с приложением. Если нет, то это относится к сетевому соединению.

Отправленный вами код неполон: мы не знаем, как client используется parseMyInfo(). Пожалуйста, обновите ваш вопрос еще немного кода, если проблема связана с вашим приложением в дополнение к тесту, который я предложил выше.

1 голос
/ 26 августа 2011

Я не могу поверить в свою ошибку ...

Те из вас, кто сказал, что у меня проблема с моими разрешениями, были правы.Мне нужно было включить мое интернет-разрешение за пределами приложения.IE:

<service android:name="Stepgreen_Service$StepgreenService_BG"></service>
</application>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-
permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

</manifest>
0 голосов
/ 25 августа 2011

У меня была точно такая же проблема неделю назад на двух моих устройствах (Nexus One на 2.3.4 и Transformer на 3.1).Думал, что это был мой код, поэтому установил более старую версию и нет, такая же ошибка.

Решение?Перезагрузка для каждого.Предполагая, что что-то должно быть не так в ОС где-то.

...