1

この問題についてよく検索し、3 日以上費やしましたが、どのスレッドも役に立ちませんでした。Jersey oAuth を使用して Web サービスにアクセスしています。

以下はジャージ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 を使用しています。

  1. リスト項目
  2. OAuth クライアント 1.12.jar
  3. OauthSignature-1.12 jar
  4. ジャージー クライアント -1.12 jar
  5. jersey-core-1.12.jar
  6. jersey-json-1.12.jar
  7. 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ファイルを削除することを提案しています. 私は同じことをしましたが、それでも問題を解決できませんでした。

誰でもこの問題を取り除く方法を知っていますか? このコードが Android ではなく Java で動作するのはなぜですか?

コードで使用できる Android 固有の jsr311 はありますか?

誰かが解決策を持っている場合は親切に助けてください。

4

0 に答える 0