在 AnyLogic 中为代理创建文本文件时出现 NullPointerExection 错误

Posted

技术标签:

【中文标题】在 AnyLogic 中为代理创建文本文件时出现 NullPointerExection 错误【英文标题】:Getting NullPointerExection error while creating a text file for an Agent in AnyLogic 【发布时间】:2021-12-18 10:51:12 【问题描述】:

我已经创建了一个代理,然后我将连接托盘中的一个文本文件放入该代理模型中。一旦我运行模拟,它就会显示 NullPointerException 错误。在控制台中显示未知来源。尽管我在此之前已经创建了该文件并从属性托盘中放置了该文件的位置。我正在使用 AnyLogic 7 专业版。

    Error window

    日志:

    模型启动时出错: 空指针异常 java.lang.NullPointerException 在 com.xj.anylogic.engine.Agent.getPresentation(未知来源) 在 com.xj.anylogic.engine.connectivity.TextFile.(未知来源) 在 com.xj.anylogic.engine.connectivity.TextFile.(未知来源) 在仓库.Worker.(Worker.java:71) 在仓库.Main._unloadingPerson_newUnit_xjal(Main.java:5246) 在仓库.Main.access$6(Main.java:5244) 在仓库.Main$7.newUnit(Main.java:1773) 在 com.xj.anylogic.libraries.processmodeling.ResourcePool.a(未知来源) 在 com.xj.anylogic.libraries.processmodeling.ResourcePool$b.a(未知来源) 在 com.xj.anylogic.libraries.processmodeling.ResourcePool.X(未知来源) 在 com.xj.anylogic.libraries.processmodeling.ResourcePool.onStartup(未知来源) 在 com.xj.anylogic.libraries.processmodeling.ResourcePool.start(未知来源) 在仓库.Main.start(Main.java:12747) 在 com.xj.anylogic.engine.Engine.start(未知来源) 在 com.xj.anylogic.engine.ExperimentSimulation.b(未知来源) 在 com.xj.anylogic.engine.ExperimentSimulation.run(未知来源) 在仓库.Simulation.executeShapeControlAction(Simulation.java:127)

    Properties window of the text file

我不知道我做错了什么。 注意:当我将相同的文本文件放入主代理模型时,不会发生此错误。

更新:我找到了解决方法。我将代理与主代理链接,然后将文件放入主代理中。之后,我从代理函数中调用了该文件。据我了解,我认为除了主要代理之外,其他代理无法创建连接对象。不过我不确定。

【问题讨论】:

请不要添加注释作为评论,而是edit您的问题。也不要发布文本图像,而是发布文本本身(格式当然是可读的)。阅读链接:How to Ask、idownvotedbecau.se/imageofcode 【参考方案1】:

由于您在将相同的文本文件放在 main 上时表明它正在工作,因此可能是在代理访问文件之前创建代理...

这里有一些选项和检查

检查 1:确保该文件可在数据文件夹下项目的资源部分访问。它不应变灰,并在左侧有一个绿点。

检查 2:您放置它的代理内的文件对象中的文件名旁边也应该有一个绿点。

备选方案1:在代理内部使用参数将main上存在的文本文件传递给代理以使用它

备选方案 2:如果您的代理位于 main 上,您可以直接从代理访问 main 上的文本文件。

注意: 我认为让每个代理从他们自己内部访问完全相同的文本文件是不明智的。最好他们都访问同一个文件对象

【讨论】:

非常感谢!!备选方案 1 和 2 对我有用。我使用的是 AnyLogic 版本 7,它在目录中没有内置数据库和资源文件夹。所以无法检查检查 1 和 2。

以上是关于在 AnyLogic 中为代理创建文本文件时出现 NullPointerExection 错误的主要内容,如果未能解决你的问题,请参考以下文章

在 anylogic 中为 50% 的代理分配优先级

将 ABAddressBook 中的联系人导入文本文件时出现问题

在 Pytorch 中为 HDF5 文件创建数据集和数据加载器时出现问题:没有足够的值来解包(预期 2,得到 1)

Anylogic如何创建新代理并分配属性?

Grafana Alert/AzureMonitor:在 Grafana 中为图形创建警报规则时出现执行错误

在 c 中为链表创建结构时出现错误 C2061