2011-08-25 4 views
0

최근에 내 위젯에서 다음 오류가 다시 발생하기 시작했습니다. 나는 어떤 변화도하지 않았고 나는 그 문제가 무엇이 될 수 있고 어떻게이 문제를 해결할 수 있을지 궁금해하고있다. 내 위젯은 제 3 자 클라이언트의 정보에 액세스하기 위해 만든 서비스의 정보를 기반으로 업데이트됩니다. 며칠 전까지 데이터를 정상적으로 복원 할 수있었습니다. 이제 아래 오류가 나타납니다.알 수없는 호스트 예외

방금 ​​액티비티 (즉, 위젯이 아닌)에서 코드를 실행하려했으나 정상적으로 작동합니다. 왜 위젯이 아닌 액티비티에서 작동하는지 잘 모르겠습니다. 또한 별도의 Intent에서 제 3 자 웹 사이트에 대한 액세스를 실행하고 있습니다.

나는 이클립스를 다시 시작하고 이클립스를 시도하고 장치를 재부팅했다. 내 매니페스트 파일에 인터넷에 액세스 할 수있는 적절한 권한이 있습니다. 이 문제는 처음에 네트워크 문제로 보였지만 에뮬레이터와 장치의 웹 브라우저에서 URL에 액세스 할 수 있음을 확인했습니다. 이 코드는 며칠 전에 작업 중이었습니다. 게시물을 내 매니페스트 파일로 업데이트했습니다. parseMyInfo를 호출하기 직전에 코드가 실패합니다. OAuth 소비자/공급자 호출 중에 예외가 발생합니다. 코드 에게 실패 년대 코드를 실패

오류

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> 
+1

'UnknowHostException'은 일반적으로 DNS 시스템이 호스트 이름을 확인할 수 없음을 의미합니다. – asgs

+1

왜 이것이 다운 voted인지 확실하지 않습니다. 나는 너를 다시지지했다. 아마도 Elite Gentleman의 편집 전의 모습 때문일 것입니다. :) 그리고 asgs가 정확합니다. 인터넷 사용 권한을 사용하도록 설정했는지 다시 한 번 확인합니다. 그러면 첫 번째 단계가됩니다. – Codeman

+0

manifest.xml에서 사용 권한이 올바른지 절대적으로 확신합니까? 원래 게시물에 추가 할 수 있습니까? – elevine

답변

0

내 장치 2 대 (2.3.4의 Nexus One과 3.1의 Transformer)에서 똑같은 문제가 일주일 전에 발생했습니다. 그것이 내 코드라고 생각해서, 이전 버전을 설치했고, 같은 오류는 안된다.

해결책? 각각의 재부팅. 어딘가에서 OS가 잘못되었다고 가정합니다.

+0

고맙지 만 몇 가지 재부팅을 시도했습니다. 내 컴퓨터, 에뮬레이터 및 장치를 재부팅했습니다. – user836200

1

웹 사이트 "communitymonitorstudy.stepgreen.org"이 실행 중이므로 1 분 전에 확인했습니다.

그래서

  • 은 두 사이트가

  • 전에 다운 된 경우 문제가 (한 번 확인하시기 바랍니다)뿐만 아니라 옆에 사라졌습니다 또는 호스트를 방지 네트워크 문제가 발생하는 찾을 수

    .

동일한 기기에서 호스팅되는 일반 브라우저로 웹 사이트에 액세스 할 수 있는지 여부를 확인해야합니다. 그렇다면 문제는 응용 프로그램과 관련되어 있음을 의미합니다. 그렇지 않은 경우 네트워크 연결과 관련됩니다.

보내 주신 코드가 완전하지 않습니다. parseMyInfo()이 (가) client을 어떻게 사용하는지 알 수 없습니다. 위에 제안한 테스트보다 문제가 귀하의 응용 프로그램에 묶여 있다면 더 많은 코드로 질문을 업데이트하십시오.

+0

나는 웹 사이트에 액세스하여 에뮬레이터와 시스템 모두에서 문제를 복제 할 수 있다는 것을 두 번 확인했습니다. ParseMyInfo는 호출되지 않습니다. 코드가 해당 행에 도달하기 전에 충돌하고 문제가 계속 발생합니다. – user836200

1

내 실수를 믿을 수 없다 ...

내 권한에 문제가 있다고 말한 사람은 옳았습니다. 응용 프로그램 외부에 인터넷 사용 권한을 포함시켜야했습니다. 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

잘 했어 :) 그리고 업데이트 해주셔서 감사합니다! +1 – Shlublu

관련 문제