Realm и Kotlin: DefaultRealmModuleMediator.java -> ошибка: недостижимый оператор

Я работаю с Kotlin и Realm. Когда я пытаюсь создать свой проект, содержащий файлы Java и Kotlin, я получаю следующую ошибку в DefaultRealmModuleMediator.java:

 error: unreachable statement

person Ivo Stoyanov    schedule 25.05.2017    source источник


Ответы (1)


Решение. В файле (Project: ProjectName) gradle.build обновите версию Realm. С версией 3.3.0 работает хорошо:

dependencies {
     ...
     classpath 'io.realm:realm-gradle-plugin:3.3.0'
     ...
}

Только если это не решит проблему, попробуйте следующие варианты:


Вариант 1. В модуле: приложение gradle.build измените порядок плагинов Kotlin и Realm.

Из этого:

apply plugin: 'kotlin-android'
apply plugin: 'realm-android'

К этому:

apply plugin: 'realm-android'
apply plugin: 'kotlin-android'

Вариант 2. В файле build.sript, если у вас есть:

compileOptions {
    incremental true
}

Измените его на false:

compileOptions {
    incremental false
}
person Ivo Stoyanov    schedule 25.05.2017
comment
realm-android должно быть после kotlin-android, насколько мне известно. На самом деле, обычно это порядок kotlin-android, затем kotlin-kapt, затем realm-android... Я также видел kapt { generateStubs = true }, хотя не уверен, что он делает. - person EpicPandaForce; 25.05.2017
comment
С «realm-gradle-plugin: 2.0.0», если Realm находится после Kotlin, вы получаете «ошибку: недостижимый оператор» в DefaultRealmModuleMediator.java - person Ivo Stoyanov; 25.05.2017
comment
ах да, потому что поддержка kapt была добавлена ​​в 2.2.0, см. github.com/realm/realm-java/blob/master/ - person EpicPandaForce; 25.05.2017