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

Codename One项目构建失败求助:添加HHTCrit.java后触发异常

问题

原本可正常构建的Codename One项目,修改后构建失败;回退到最近一次可构建版本后仍然无法构建。通过Codename One initializr创建的基础Java应用(使用NetBeans IDE)可正常构建,但添加一个简单的Java文件HHTCrit.java后构建失败,报错日志如下:

Tried to start hyperlog but failed: Failed to start hyperlog: Cannot run program "hyp": error=2, No such file or directory

> Task :multiDexListDebug> Task :multiDexListDebug FAILED FAILED
/tmp/build1965224036948247615xxx/MyApp/libs/userClasses.jar: D8: java.lang.NullPointerException/tmp/build1965224036948247615xxx/MyApp/libs/userClasses.jar: D8: java.lang.NullPointerException

FAILURE: FAILURE: Build failed with an exception.Build failed with an exception.
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':multiDexListDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Error while merging dex archives: 

* Try:
Run with --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':multiDexListDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:207)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$$Lambda$477/1137979299.accept(Unknown Source)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:205)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':multiDexListDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:207)

排查建议

  • 修复Hyperlog依赖缺失:日志开头的hyp: No such file or directory是构建环境问题。检查Codename One构建工具的安装状态,确保hyp可执行文件已正确安装并添加到系统PATH中,必要时重新安装Codename One构建套件。
  • 排查D8空指针异常:
    • 检查HHTCrit.java代码,确认是否存在未初始化变量、语法错误,或是使用了Codename One不兼容的Java特性(如未转译的Java 8+语法)。
    • 单独编译HHTCrit.java生成class文件,手动打包进测试jar,验证是否会触发相同的NPE,以此确认该文件是否为直接诱因。
    • 清理项目缓存:删除NetBeans项目缓存、Codename One构建临时目录(如日志中的/tmp/buildxxx),再重新构建。
  • MultiDex配置检查:
    • 确认项目build.gradle中multiDexEnabled是否设为true,相关MultiDex依赖是否正确引入。
    • 若代码量允许,尝试关闭MultiDex构建,排查是否是合并dex档案时的问题。
  • 逐步定位问题点:继续分批次添加原有代码,每次添加后执行构建,精准确认是否只有HHTCrit.java导致问题,还是存在其他冲突的代码/资源。
  • 获取详细日志:按照报错提示,使用--debug参数运行构建,获取D8编译的完整日志,定位NPE的具体触发位置。

内容的提问来源于stack exchange,提问作者stylsy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:31:34