启动AppManager时抛出ClassNotFoundException:缺失DisplayService类
解决Gluon AppManager启动时找不到Attach服务类的问题
问题根源
AppManager.initialize()会自动初始化你在attachConfig中配置的Gluon Attach服务(display、lifecycle等),但桌面运行场景(gradlew run或IDE启动)下,GluonFX插件不会自动引入这些Attach服务的依赖——该插件仅在iOS/Android打包时自动处理依赖,因此桌面运行时会出现类找不到的错误。
解决步骤
1. 添加Attach服务的Gradle依赖
在build.gradle的dependencies块中,补充你配置的所有Attach服务对应的依赖(版本需与attachConfig中的version保持一致,这里为4.0.21):
dependencies { implementation "com.gluonhq:charm-glisten:6.2.3" // 补充Attach服务依赖 implementation "com.gluonhq:attach-display:4.0.21" implementation "com.gluonhq:attach-lifecycle:4.0.21" implementation "com.gluonhq:attach-statusbar:4.0.21" implementation "com.gluonhq:attach-storage:4.0.21" }
2. 更新模块声明(module-info.java)
在模块配置中添加对Attach服务模块的依赖,同时补上缺失的JavaFX Controls模块声明:
module hellofx { requires javafx.base; requires javafx.graphics; requires javafx.controls; // 补充javafx.controls模块依赖 requires com.gluonhq.charm.glisten; // 补充Attach服务模块依赖 requires com.gluonhq.attach.display; requires com.gluonhq.attach.lifecycle; requires com.gluonhq.attach.statusbar; requires com.gluonhq.attach.storage; exports org.openjfx; }
3. 验证运行
重新执行gradlew run或从IDE启动项目,此时AppManager可以正常加载所需的Attach服务类,运行时错误将被解决。
内容的提问来源于stack exchange,提问作者user1803551
相关产品推荐
相关产品推荐

