Неразрешенная ссылка: Kotlin нуждается в 2 сборках после очистки, чтобы получить код при использовании kapt

В нашем Android-приложении мы используем DBFlow для доступа к базе данных SQLite. Мы ссылаемся на классы, созданные DBFlow через Kotlin. Мы уже знаем о том, что у нас есть классы моделей, а также класс базы данных в Java, поскольку генерация кода не будет работать при написании этих классов в Kotlin.

Однако нам по-прежнему приходится создавать код дважды после каждого проекта. Выполнение первой сборки на устройстве приводит к ClassNotFoundExceptions для кажущихся случайными классов Kotlin (даже если они не имеют доступа к коду, сгенерированному DBFlow или любым из классов моделей, определенных нами). То же самое сообщается уже во время компиляции, когда вы включаете Proguard, который, конечно же, не выполняет сборку. Вторая сборка всегда преуспевает.

Самое смешное, что генерация кода уже работает в первом запуске – классы есть и также подхвачены IDE. Но компилятор каким-то образом не может найти их, заставляя меня думать, что генерация кода происходит слишком поздно в процессе сборки. С другой стороны, как объяснялось выше, также не найдены классы, которые не должны ничего делать с генерацией кода и / или обработкой аннотаций.

Так есть ли лучшее решение этой проблемы, чем вторая сборка?

Для справки, соответствующие части build.gradle нашего приложения выглядят так: как и в документации DBFlow, предлагается:

 def dbflow_version = "3.0.0-beta4" dependencies { kapt "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}" compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}" compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}" } kapt { generateStubs = true } 

Изменить: я обнаружил, что мне также приходится перестраивать два раза за каждое изменение, которое я делаю в коде. Он правильно компилируется в первой сборке, если я раньше не чистил, но изменения просто не подбираются.

Если вы используете kotlin и retrolambda, это может исправить:

 me.tatarka:gradle-retrolambda:3.4.0 

Github gist

Intereting Posts
Получение размера ems в строке в Android Как реализовать бесконечную галерею в Android? Android загружает данные html в пользовательские закладки хрома Android одновременных операций с db – «база данных заблокирована» Android Facebook получает адрес электронной почты, зарегистрированный через токен доступа Не удается создать после обновления до Android Studio 2.3 GetActivity () в фрагменте имеет значение null после изменения ориентации Только эмулятор ошибки ACCESS_FINE_LOCATION Вызов метода MainActivity из других классов (которые расширяют широковещательный приемник) Android NDK, поддерживающий живые объекты C ++ Дублировать веб-просмотр, я хочу загрузить то же самое в каждом Исключение класса cast в FrameLayout, когда я пытаюсь изменить порядок просмотров в макете xml? Ошибка авторизации API Google Android v2 Может ли общая библиотека вызывать еще одну общую библиотеку? Резервное копирование / восстановление общих настроек android