2016-10-17 13 views
0

私はAndroidアプリケーションにMailgunを統合しようとしていますが、私は多くの問題を抱えています。助けてください。 Mailgunユーザーマニュアル(https://documentation.mailgun.com/user_manual.html#sending-via-api)に続いてプレーンテキストのメールを送信できますが、Androidバージョンのデバイスが少なくともLollipopである場合にのみ可能です。 Androidのバージョンが下位のデバイスであれば、XML関連のクラスが見つからないと多くのエラーが発生します。これは、javax.*クラスをインポートできないため解決できません。ユーザーガイドに記載されているコードを使用してHTMLメールを送信しようとすると同じことが起こります。ログで受信したエラーのAndroidでMailgunでHTML電子メールを送信する方法<5.0

例:誰もがこれらの問題(Androidデバイス< 5.0および/またはHTML形式の電子メールを送信するにMailgunを使用して)に走ったとすることができましたしている人ならば

The provider class, class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$App, could not be instantiated. 
Processing will continue but the class will not be utilized 
java.lang.TypeNotPresentException: Type javax.xml.stream.XMLInputFactory not present 

The provider class, class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$Text, could not be instantiated. 
Processing will continue but the class will not be utilized                
java.lang.TypeNotPresentException: Type javax.xml.stream.XMLInputFactory not present 

The provider class, class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General, could not be instantiated. 
Processing will continue but the class will not be utilized                
java.lang.TypeNotPresentException: Type javax.xml.stream.XMLInputFactory not present 

はこのように、私は疑問に思ってそれらを解決する私にいくつかの指摘を与えることができます。ありがとう!

+0

「私はXML関連のクラスが見つからないに関する多くのエラーを受け取ります」 - あなたはあなたの質問を編集し、欠けているものの詳細を提供したいかもしれません。 – CommonsWare

答えて

2

公式のMailgunのドキュメントを指しているので、Jersey-1.xライブラリをJAX-RSクライアントとして使用していると仮定します。

2.xブランチに試してみることをお勧めします。見てくださいat this

また、Jerseyを使用する必要はありません。すべてのRESTクライアントが行います。 this SO questionには、代替オプションと詳細があります。

問題が発生しました。 Jerseyおよび任意のJAX-RSライブラリでは、コンテンツ(エンティティ)を扱うことを含めて、異なるものについてプロバイダを使用しています。あなたの問題は、デフォルトのXMLエンティティプロバイダがクラスパスで利用できないJAXBまたはJAXP(それらのjavax.xmlクラス)を使用していることです。しかし、you can provide Jersey with any other entity manager for XML content type。実際には、現在のドキュメントではhow to use MOXy as an alternate JAXB implementationと説明されています。依存関係としてコンパイルされています。

<dependency> 
    <groupId>org.glassfish.jersey.media</groupId> 
    <artifactId>jersey-media-moxy</artifactId> 
    <version>2.23.2</version> 
</dependency> 
+1

他のRESTクライアントを使うことはできませんでした。haha ...魅力的なRetrofitを使うことに決めました。 – myrocks2

0

this libraryを使用できます。

また、あなたがあなたのGradleファイルに「設定」を追加する必要があり、それは次のようになります。

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'net.sargue:mailgun:1.3.2' 
} 

configurations { 
    compile.exclude group: 'javax.inject', module: 'javax.inject' 
} 

詳しい情報here

関連する問題