java .lang.NoClassDefFoundError: Ошибка разрешения: <Class>в android обработке аннотации - PullRequest
0 голосов
/ 12 января 2020

Я создал пользовательский процессор аннотаций, который генерирует код в виде файла Java в папке app / generate / source / kaptkotlin / debug / .

Я использую " kotlin -kapt "плагин для регистрации процессора аннотаций.

Во время компиляции и сборки этот класс выбран и сборка прошла успешно. Ide также показывает класс genreated, но всякий раз, когда я пытаюсь запустить приложение, оно вылетает с сообщением "java .lang.NoClassDefFoundError".

Я добавляю каталог в исходный набор следующим образом:

sourceSets {
    main {
        java {
            srcDir "${buildDir.absolutePath}/generated/source/kaptKotlin/"
        }
    }

}

Но по какой-то причине я не могу использовать код, сгенерированный во время выполнения.

Это шаги, которые я выполнил, чтобы создать создать процессор:

  1. Создать аннотацию как отдельный Kotlin модуль
  2. Создать процессор как отдельный Kotlin модуль
  3. Создать класс Java что я хочу во время выполнения приложения
  4. Зарегистрируйте процессор с помощью kapt
  5. Добавьте каталог к ​​исходному набору, используя приведенную выше строку.

Должен ли я создать jar из класса и добавить его в папку lib, чтобы он мог быть поднят Android, или есть какой-то другой шаг, который я пропустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...