GluonFX构建JavaFX转APK部署Android:如何输出Logcat日志及解决堆栈不全
GluonFX构建的JavaFX Android应用日志输出与堆栈跟踪问题解决
一、将应用日志输出到Logcat
- 使用Java标准日志API(如
java.util.logging),GluonFX会自动将日志转发至Android Logcat。示例代码:import java.util.logging.Logger; import javafx.application.Application; import javafx.stage.Stage; public class JavaxSampleApplication extends Application { private static final Logger logger = Logger.getLogger(JavaxSampleApplication.class.getName()); @Override public void start(Stage stage) { logger.info("应用启动成功"); logger.severe("这是一条错误日志"); // 后续业务逻辑 } public static void main(String[] args) { launch(args); } } - 部署后通过
adb命令查看日志,可过滤GraalCompiled标签快速定位应用日志:adb logcat -s GraalCompiled
二、获取完整错误堆栈跟踪
你遇到的重复行问题,是因为GraalVM原生编译默认优化了堆栈信息,需调整构建配置保留完整堆栈:
Gradle项目配置
在build.gradle的gluonfx任务中添加GraalVM编译参数:
gluonfx { target = "android" graalvmArgs = [ "-H:+PreserveFramePointer", "-H:-OmitStackTraceInFastThrow" ] }
Maven项目配置
在pom.xml的gluonfx-maven-plugin中配置参数:
<plugin> <groupId>com.gluonhq</groupId> <artifactId>gluonfx-maven-plugin</artifactId> <version>1.0.21</version> <!-- 使用最新稳定版本 --> <configuration> <target>android</target> <graalvmArgs> <arg>-H:+PreserveFramePointer</arg> <arg>-H:-OmitStackTraceInFastThrow</arg> </graalvmArgs> </configuration> </plugin>
重新构建APK并部署到设备后,再触发错误时,Logcat就能显示完整的堆栈跟踪信息。
内容的提问来源于stack exchange,提问作者naturzukunft
相关产品推荐
相关产品推荐

