试图从 class androidx.room.CoroutinesRoom$Companion 访问 class kotlin.jvm.internal.DefaultConstructorMarker

tried to access class kotlin.jvm.internal.DefaultConstructorMarker from class androidx.room.CoroutinesRoom$Companion

我通过以下测试得到 java.lang.BootstrapMethodError: java.lang.IllegalAccessError: tried to access class kotlin.jvm.internal.DefaultConstructorMarker from class androidx.room.CoroutinesRoom$Companion,为什么?

@RunWith(AndroidJUnit4::class)
class DBTest {

  @Test
  @Throws(Exception::class)
  fun basicOperations() = runBlocking  {
    val context = ApplicationProvider.getApplicationContext<Context>()
    val db = Room.inMemoryDatabaseBuilder(context, AppDatabase::class.java).build()
    db.favDao().insertFav(Fav("whatever"))
    assertEquals("whatever", db.favDao().getFav("whatever"))
    db.favDao().deleteFav(Fav("whatever"))
    assertEquals(null, db.favDao().getFav("whatever"))
    db.close()
  }
}

我几乎只是复制了 from the docs

我使用的是最新的 room-coroutines,因为最近有来自 Google 的媒体报道。

自 2019 年 3 月 21 日起,在 Robolectric 的快照中引​​入了一个修复程序,它应该包含在未来的版本中:

https://github.com/robolectric/robolectric/commit/6d246391fdaac92968811bc83e1afb057e6f93a3

原因是 CoroutinesRoom class 的伴随对象上的内部注释。