LoginSignup
0
0

More than 3 years have passed since last update.

RobolectricでDuplicate class エラー

Posted at

Robolectricでテスト実装しています。
sharedTestディレクトリに配置することでJVMでのテストも実機でのテストも可能ということでやっています。
しかしローカルJVMでのテストは正常に動作したのですが、実機でのInstrumented Testを実行すると以下のようなエラーがでてハマりました。

Duplicate class org.apache.maven.artifact.Artifact found in modules maven-ant-tasks-2.1.3.jar (org.apache.maven:maven-ant-tasks:2.1.3) and maven-artifact-2.2.1.jar (org.apache.maven:maven-artifact:2.2.1)
Duplicate class org.apache.maven.artifact.ArtifactStatus found in modules maven-ant-tasks-2.1.3.jar (org.apache.maven:maven-ant-tasks:2.1.3) and maven-artifact-2.2.1.jar (org.apache.maven:maven-artifact:2.2.1)
Duplicate class org.apache.maven.artifact.ArtifactUtils found in modules maven-ant-tasks-2.1.3.jar (org.apache.maven:maven-ant-tasks:2.1.3) and maven-artifact-2.2.1.jar (org.apache.maven:maven-artifact:2.2.1)
...略

./gradlew app:dependencies で依存関係を調べてみましたが、そもそも maven-ant-taskmaven-artifact も Robolectric内部でしか参照されていない状態でした。
バグかなーと思いシンプルなサンプルと見比べていたところ、
app/build.gradleに以下の誤りを見つけました。

app/build.gradle
// 誤
androidTestImplementation "org.robolectric:robolectric:$robolectricVersion"

// 正
androidTestImplementation "org.robolectric:annotations:$robolectricVersion"

わかりますか? モジュール名の robolectricannotations が違っていました。
ぐぐっても出てこないし時間かかりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0