Итак, я успешно импортировал пользовательский класс в свой класс .fxml следующим образом
<?import com.company.project.controller.myCustonClass?>
Все работает нормально, и моя программа работает как положено. После того, как я добавил Pro Guard в свое приложение, программа не работает. Я получаю
FXMLLoadException
Подробности исключений приведены ниже [взято из log.out]
myCustonClass is not a valid type.
file:/F:/xxxxx/xxx/xxx/project-name/target/jfx/app/project-name.jar!/fxml/MyScreen.fxml:21
Я нашел обходной путь для этого. Я просто добавляю исключение в файл .conf, как этот
-keep class com.company.project.controller.myCustonClass
Это единственный способ справиться с проблемой. Имя класса в отладчике выглядит странно, в то время как любой другой класс был «запутан»
Как предложено в ProGuard ломает приложение JavaFX , я добавил файл .txt с заглавными буквами, но мое приложение не работает.
Я использовал отладчик JD-GUI и вижу, что все запутанные имена классов имеют заглавные буквы. Так что это не похоже на проблему с 'fxml, неспособным загрузить имена классов маленькой буквой'
Обновление :
Я использовал другой отладчик 'jadx' и вижу оператор импорта:
import com.company.project.b.A
но в .fxml файле я вижу тег
<CustonClass ................../>