最近,我开始从我的小部件中收到以下错误。我没有做任何改变,我想知道问题是什么以及如何解决问题。我的小部件会根据我创建的服务中的信息进行更新,以便从第三方客户端访问信息。几天前,我能够将数据恢复正常。现在我收到以下错误。
我刚尝试在一个活动中运行代码(即非小部件),它运行正常。我不确定它为什么在一个活动中起作用而不是一个小部件。我也在一个单独的Intent中运行对第三方网站的访问。
我尝试重启模拟器,eclipse并重启设备。我的清单文件具有访问Internet的适当权限。最初的问题似乎是网络问题,但我确认我可以从模拟器和设备上的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>
答案 0 :(得分:1)
网站“ communitymonitorstudy.stepgreen.org ”已启动并运行,我已在一分钟前检查过。
所以
如果网站已经关闭,问题已经消失在你身边(请仔细检查)
或者您遇到阻止找到主机的网络问题。
您应该检查同一设备上托管的常规浏览器是否可以访问该网站。如果是这样,这意味着问题与应用程序有关。如果不是,则它与网络连接有关。
您发送的代码不完整:我们不知道client
如何使用parseMyInfo()
。如果问题与您的应用程序相关,请在上面建议的测试之后再使用更多代码更新您的问题。
答案 1 :(得分:1)
我无法相信自己的错误......
那些说我的权限有问题的人是对的。我需要在应用程序之外包含我的Internet权限。 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>
答案 2 :(得分:0)
我一周前在两台设备上遇到了完全相同的问题(2.3.4上的Nexus One和3.1上的Transformer)。以为这是我的代码,所以安装了旧版本和nope,同样的错误。
解决方案?每个都重新启动。假设操作系统某处必须出现问题。