14

ビルドツールとしてMavenを使用してAndroidアプリに取り組んでいます。私はevertyhingを正しく設定することができました(mavenの依存関係はapkなどにエクスポートされます)が、私を夢中にさせている問題が1つ残っています。

次のように定義されたsimpleframeworkのxmlパーサーへの依存関係をPOMファイルに含めたいと思います。

<dependency>
    <groupId>org.simpleframework</groupId> 
    <artifactId>simple-xml</artifactId>
    <version>2.5.3</version>
</dependency>

プロジェクトを発行mvn installすると、次のエラーが発生します(切り捨てられます)。

trouble processing "javax/xml/namespace/NameSpaceContext.class" ...

これらのjavaxクラスを参照する単純なxmlパーサーのエラーの結果はわかっていますが、まだ解決策が見つかりません(--core-libraryフラグを設定しても意味がありません)。

現在、maven-jarjar-plugingを使用して依存関係を再パックしようとしていますが、これも機能しないようです。

誰かがこれで私を助けることができますか?よろしくお願いします!

4

3 に答える 3

28

simple-xmlの依存関係を次のように定義します。

<dependency>
    <groupId>org.simpleframework</groupId>
    <artifactId>simple-xml</artifactId>
    <version>2.6.1</version>
    <exclusions>
        <!-- StAX is not available on Android -->
        <exclusion>
            <artifactId>stax</artifactId>
            <groupId>stax</groupId>
        </exclusion>
        <exclusion>
            <artifactId>stax-api</artifactId>
            <groupId>stax</groupId>
        </exclusion>
        <!-- Provided by Android -->
        <exclusion>
            <artifactId>xpp3</artifactId>
            <groupId>xpp3</groupId>
        </exclusion>
    </exclusions>
</dependency>
于 2011-09-06T08:39:28.160 に答える
2

私はandroid-maven-pluginを使用しており、POMのプラグインのタグに追加<coreLibrary>true</coreLibrary>するとうまくいきます。<configuration>ただし、バグがあります:https ://github.com/jayway/maven-android-plugin/pull/34 、バグは3.0まで修正されないため、使用しているプラ​​グインを修正するために含める必要があります。2.9.0-SNAPSHOTを使用して動作させる方法は次のとおりです。

  1. http://oss.sonatype.org/content/repositories/jayway-snapshots/を指すpluginRepositoryを追加して、2.9.0-SNAPSHOTを取得します
  2. プラグインのバージョンを更新して2.9.0-SNAPSHOTを使用し、<coreLibrary> true</coreLibrary>をpom.xmlに追加します
  3. 修正を取得します:git clone https://github.com/kevinpotgieter/maven-android-plugin.git
  4. src / test / java / comを削除します:テストが失敗しないようにします
  5. mvnパッケージ
  6. それをコピーして、.m2のローカルMavenキャッシュを上書きします(毎回上書きされるプラグインリポジトリを削除する必要がある場合があります)。

修正が2.9.0-SNAPSHOTに入った後は、ステップ3-6は必要ありません。


2010年7月の更新:2.9.0-beta-4に修正が加えられているため、2.9.0-beta-4以降を使用する場合は、上記の回避策は必要ありません。私は2.9.0-beta-5をテストしましたが、これは問題なく機能しました。

于 2011-05-21T22:23:35.140 に答える
1

Spring Androidは、Mavenを使用してSimpleを統合します。次のURLを見てください。これは、MavenをSimpleで動作させる方法へのポインターを提供するはずです。

http://static.springsource.org/spring-android/docs/1.0.x/reference/html/rest-template.html

于 2011-06-01T01:03:06.200 に答える