ごく最近、ウィジェットから次のエラーが返され始めました。私は何も変更を加えなかったので、問題は何である可能性があり、どのように問題を回避するのか疑問に思っています。ウィジェットは、サードパーティのクライアントからの情報にアクセスするために作成したサービスからの情報に基づいて更新されます。数日前まではデータを正常に戻すことができました。今、私は以下のエラーを受け取ります。
アクティビティ(つまり、非ウィジェット)でコードを実行しようとしましたが、正常に機能します。なぜウィジェットではなくアクティビティで機能するのかわかりません。また、別のインテントでサードパーティのWebサイトへのアクセスを実行しています。
エミュレータを再起動し、Eclipseを起動して、デバイスを再起動してみました。私のマニフェストファイルには、インターネットにアクセスするための適切な権限があります。最初はネットワークの問題のようでしたが、エミュレータとデバイスのWebブラウザから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>