Javaで書かれたテストコードをkotlinと共存しながら、書き換えをおこなっていた際にエラーが出たのでメモ。
内容
エラーメッセージは以下。
/Users/nakayama/StudioProjects/ChatMessageView/example/src/androidTest/java/com/github/bassaer/example/MessengerActivityTest.java:13: エラー: パッケージcom.github.bassaer.example.matcherは存在しません
import com.github.bassaer.example.matcher.MessageListMatcher;
^
/Users/nakayama/StudioProjects/ChatMessageView/example/src/androidTest/java/com/github/bassaer/example/MessengerActivityTest.java:146: エラー: シンボルを見つけられません
onView(withId(R.id.message_view)).check(matches(MessageListMatcher.withListSize(0)));
java配下のMessagngerActivityTest.javaからkotlin配下のMessageListMatcher.ktを呼び出す処理を書いていたらビルドは通るが、実行すると上記のエラーが発生。
├── androidTest
│ ├── java
│ │ └── com
│ │ └── github
│ │ └── bassaer
│ │ └── example
│ │ ├── MainActivityTest.java
│ │ ├── MessengerActivityTest.java
│ │ ├── matchers
│ │ │ ├── DrawableMatcher.java
│ │ │ ├── ImageViewDrawableMatcher.java
│ │ │ └── TextColorMatcher.java
│ │ └── util
│ │ └── ElapsedTimeIdlingResource.java
│ └── kotlin
│ └── com
│ └── github
│ └── bassaer
│ └── example
│ ├── matcher
│ │ ├── ColorMatcher.kt
│ │ └── MessageListMatcher.kt
│ └── util
└── main
sourceSetsでkotlinフォルダも読み込むようにしているが、エラーが発生する。
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
androidTest.java.srcDirs += 'src/androidTest/kotlin'
test.java.srcDirs += 'src/test/kotlin'
}
結論
これを書くのを忘れていました。
apply plugin: 'kotlin-android'
以上。