3

Eclipseの下でMavenを使用して構築された2つのAndroidのプロジェクトがあります。1つはプロジェクト自体であり、もう1つはテストプロジェクトです。

プロジェクトをそのまま実行するAndroid JUnit Testと、エラーがスローされます。

java.lang.RuntimeException: Exception during suite construction
Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.NoClassDefFoundError: com.some.TestClass

このエラーLogcatの根本的な原因は次のとおりです。

Lcom.some.TestClass; had used a different Landroid/support/v4/app/FragmentActivity; during pre-verification

Webを掘り下げると、同様の問題android-support-v4.jarが解決策であることがわかりました。これは、テストプロジェクトから重複を削除することでした。ただし、これは依存関係の継承によるMavenのプロジェクトには適用されません。

それを機能させる唯一の方法は、起動する前に、テストプロジェクトのビルドパスからMaven Dependenciesライブラリを手動で削除しProject Reference、ターゲットのAndroidプロジェクトに明示的に追加する必要があることでした。

¿誰かがこのハックなしでそれを機能させる方法を知っていますか?

これが私のプロジェクトの関連する断片ですpom.xml

<groupId>com.some</groupId>
<artifactId>project</artifactId>
<packaging>apk</packaging>
...
<dependencies>
    ...
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>support-v4</artifactId>
    </dependency>
    ...
</dependencies>

そしてテストプロジェクトpom.xml

<groupId>com.some</groupId>
<artifactId>project-test</artifactId>
<packaging>apk</packaging>
...
<dependencies>
    ...
    <dependency>
        <groupId>com.some</groupId>
        <artifactId>project</artifactId>
        <packaging>apk</packaging>
    </dependency>

    <dependency>
        <groupId>com.some</groupId>
        <artifactId>project</artifactId>
        <packaging>jar</packaging>
    </dependency>
    ...
</dependencies>
4

1 に答える 1

0

最近、同じ問題と思われるものを解決しました。これは に固有のものではありませんandroid-support-libraryこの回答を確認してください。

于 2013-11-20T18:18:59.587 に答える