Я создал пользовательский процессор аннотаций, который генерирует код в виде файла Java в папке app / generate / source / kaptkotlin / debug / .
Я использую " kotlin -kapt "плагин для регистрации процессора аннотаций.
Во время компиляции и сборки этот класс выбран и сборка прошла успешно. Ide также показывает класс genreated, но всякий раз, когда я пытаюсь запустить приложение, оно вылетает с сообщением "java .lang.NoClassDefFoundError".
Я добавляю каталог в исходный набор следующим образом:
sourceSets {
main {
java {
srcDir "${buildDir.absolutePath}/generated/source/kaptKotlin/"
}
}
}
Но по какой-то причине я не могу использовать код, сгенерированный во время выполнения.
Это шаги, которые я выполнил, чтобы создать создать процессор:
- Создать аннотацию как отдельный Kotlin модуль
- Создать процессор как отдельный Kotlin модуль
- Создать класс Java что я хочу во время выполнения приложения
- Зарегистрируйте процессор с помощью kapt
- Добавьте каталог к исходному набору, используя приведенную выше строку.
Должен ли я создать jar из класса и добавить его в папку lib, чтобы он мог быть поднят Android, или есть какой-то другой шаг, который я пропустил?