我在这个问题上搜索了很多,花了超过 3 天,但没有一个线程对我有帮助。我正在使用 Jersey oAuth 访问网络服务。
下面是我的球衣 oAuth 代码。
private SSRestServiceClient(String url, String consumerKey, String consumerSecret) {
OAuthParameters params = new OAuthParameters().signatureMethod(HMAC_SHA1.NAME).consumerKey(
consumerKey).version(OAUTH_VERSION);
OAuthSecrets secrets = new OAuthSecrets().consumerSecret(consumerSecret);
Client httpClient = Client.create();
OAuthClientFilter filter = new OAuthClientFilter(httpClient.getProviders(), params, secrets);
httpClient.addFilter(filter);
httpClient.addFilter(new LoggingFilter());
this.webResource = httpClient.resource(url);
}
对于 oAuth ,我使用以下 api,
- 项目清单
- OAuth 客户端 1.12.jar
- OauthSignature-1.12 jar
- 泽西客户端-1.12 jar
- jersey-core-1.12.jar
- jersey-json-1.12.jar
- jsr311.jar
当我在简单的 java 应用程序中运行此代码时,它工作正常,但是当我将此代码从 java 迁移到 android 时,它开始给我错误
[2014-09-27 17:19:05 - Dex Loader] 无法执行 dex:多个 dex 文件定义 Ljavax/ws/rs/ApplicationPath;[2014-09-27 17:19:05 - Demo-Jersey] 转换为 Dalvik 格式失败:无法执行 dex:多个 dex 文件定义 Ljavax/ws/rs/ApplicationPath;
我搜索了一下,一些线程建议我从 jsr311 中删除 ApplicationPath 文件。我做了同样的事情,但仍然无法解决问题。
谁能知道如何摆脱这个问题?为什么这段代码在java中运行而不是在andriod中运行?
我可以在我的代码中使用任何特定于 android 的 jsr311 吗?
如果有人有解决方案,请帮助我。