You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 12:42:41