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

AnyLogic道路交通模型触发NullPointerException且JAR无源码附件求助

问题:AnyLogic道路交通模型运行中抛出模糊的NullPointerException异常

异常情况

模型并非立即报错,可正常运行60-800模型秒后抛出NullPointerException,堆栈跟踪无具体源码位置:

Exception during discrete event execution:
NullPointerException
java.lang.NullPointerException
    at com.anylogic.libraries.road.Car_xjal.g(Unknown Source)
    at com.anylogic.libraries.road.Car_xjal.al(Unknown Source)
    at com.anylogic.libraries.road.Car_xjal.a(Unknown Source)
    at com.anylogic.libraries.road.Car_xjal.on_SegmentEndEvent_xjal(Unknown Source)
    at com.anylogic.libraries.road.Car_xjal$SegmentEndEvent.execute(Unknown Source)
    at com.anylogic.engine.Engine.n(Unknown Source)
    at com.anylogic.engine.Engine.cl(Unknown Source)
    at com.anylogic.engine.Engine$n.run(Unknown Source)

调试限制

尝试设置断点调试时,系统提示相关库无源码附件:

The JAR file C:\Program Files\AnyLogic 8.8 Professional\plugins\com.anylogic.road_traffic_library_8.8.1.202210270952\lib\RoadTrafficLibrary.jar
 has no source attachment. You can attach a source by clicking Attach Source below

偶尔错误提示的无源码附件路径会变为C:\Program Files\AnyLogic 8.8 Professional\jre\lib\jrt-fs.jar


可能的解决方案

1. 排查车辆与路段交互的异常场景

从堆栈看异常触发在on_SegmentEndEvent_xjal,即车辆到达路段末端时出现问题,重点检查:

  • 是否存在动态删除路段的操作:若模型运行中删除了车辆当前行驶的路段,车辆到达末端时会找不到后续路径或路段引用,触发空指针。
  • 路径规划的异常:比如车辆的目的地路段被移除,或路径计算返回空值,车辆切换路段时触发空指针。
  • 自定义车辆行为的冲突:如果扩展了Car类的自定义代码,检查是否在路段结束事件中引用了未初始化的对象,或修改了AnyLogic库依赖的内部变量。

2. 绕过源码缺失的调试限制

即使没有库源码,也可通过以下方式定位问题:

  • 启用AnyLogic的跟踪日志:在模型运行配置中开启详细日志,重点记录车辆的路段切换事件、路径变化、对象创建/销毁信息,通过日志定位触发异常的具体车辆和场景。
  • 添加自定义监控:在模型中加入代码,记录每辆车辆的当前路段、下一路段、路径信息,在异常触发前打印数据。比如在Car的onBeforeMove或自定义事件中加入:
    if (getCurrentSegment() != null) {
        traceln("Vehicle " + getIndex() + " on segment: " + getCurrentSegment().getName() + ", next segment: " + (getNextSegment() != null ? getNextSegment().getName() : "null"));
    }
    
  • 重现最小化场景:逐步简化模型,移除非必要元素(如复杂交通控制、动态路段修改),直到异常稳定重现,缩小问题范围。

3. 检查AnyLogic版本与库兼容性

  • 确认AnyLogic 8.8 Professional是否存在道路交通库的已知bug:查看版本更新日志,确认8.8后续版本是否修复了类似空指针问题,考虑升级到最新兼容版本。
  • 验证模型文件是否损坏:将模型核心元素(道路网络、车辆、交通控制)复制到新的AnyLogic项目中运行,排除项目文件损坏导致的异常。

4. 处理JAR附件提示异常

针对jrt-fs.jar的提示,这是JRE系统库,无需附加源码。重点关注RoadTrafficLibrary.jar的问题:

  • 检查安装目录下的该JAR文件是否完整,若损坏可重新安装AnyLogic修复。
  • 若需要调试库代码,可联系AnyLogic官方获取对应版本的道路交通库源码(部分专业版用户可申请)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:50:41