找回密码
 初始化身份识别芯片
查看: 51|回复: 10

无法读档

[复制链接]

驱逐技师

发表于 2 小时前 | 显示全部楼层 |阅读模式
Mod Bug汇报
待解决
游戏版本: 0.97
Mod中文名:
Mod版本:
游戏日志:
[游戏日志]

83981 [Thread-3] INFO com.fs.starfarer.campaign.save.CampaignGameManager - 载入阶段3
85549 [Thread-3] INFO com.fs.starfarer.loading.LoadingUtils - Loading JSON from [DIRECTORY: E:Starsectorstarsector-core..modsNexerelin (data/config/exerelin/milestoneDefs.json)]
85784 [Thread-3] INFO com.fs.starfarer.campaign.save.CampaignGameManager - 载入出错
85786 [Thread-3] ERROR com.fs.starfarer.campaign.save.CampaignGameManager - Failed calling method
---- Debugging information ----
message : Failed calling method
cause-exception : java.lang.NullPointerException
cause-message : null
method : com.fs.starfarer.campaign.fleet.FleetMember.readResolve()
class : com.fs.starfarer.campaign.fleet.FleetMember
required-type : com.fs.starfarer.campaign.fleet.FleetMember
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number : 468529
class[1] : java.lang.ref.WeakReference
class[2] : com.fs.starfarer.api.impl.campaign.plog.SModRecord
class[3] : java.util.ArrayList
converter-type[1] : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[4] : com.fs.starfarer.api.impl.campaign.plog.PlaythroughLog
class[5] : java.util.LinkedHashMap
converter-type[2] : com.thoughtworks.xstream.converters.collections.MapConverter
class[6] : com.fs.starfarer.campaign.rules.Memory
class[7] : com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers$SetMemoryValueAction
class[8] : com.fs.starfarer.api.impl.campaign.missions.hub.MissionTrigger
class[9] : exerelin.campaign.intel.missions.remnant.RemnantBrawl
class[10] : com.fs.starfarer.campaign.fleet.CampaignFleet
class[11] : com.fs.util.container.repo.ObjectRepository
class[12] : com.fs.starfarer.campaign.StarSystem
class[13] : com.fs.starfarer.api.impl.campaign.procgen.Constellation
class[14] : com.fs.starfarer.campaign.StarSystem$UpdateFromHyperspaceLocation
class[15] : com.fs.starfarer.campaign.BaseLocation$LocationToken
class[16] : com.fs.starfarer.campaign.Hyperspace
class[17] : com.fs.starfarer.campaign.CampaignEngine
converter-type[3] : com.fs.starfarer.campaign.save.I
version : not available
-------------------------------
com.thoughtworks.xstream.converters.ConversionException: Failed calling method
---- Debugging information ----
message : Failed calling method
cause-exception : java.lang.NullPointerException
cause-message : null
method : com.fs.starfarer.campaign.fleet.FleetMember.readResolve()
class : com.fs.starfarer.campaign.fleet.FleetMember
required-type : com.fs.starfarer.campaign.fleet.FleetMember
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number : 468529
class[1] : java.lang.ref.WeakReference
class[2] : com.fs.starfarer.api.impl.campaign.plog.SModRecord
class[3] : java.util.ArrayList
converter-type[1] : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[4] : com.fs.starfarer.api.impl.campaign.plog.PlaythroughLog
class[5] : java.util.LinkedHashMap
converter-type[2] : com.thoughtworks.xstream.converters.collections.MapConverter
class[6] : com.fs.starfarer.campaign.rules.Memory
class[7] : com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers$SetMemoryValueAction
class[8] : com.fs.starfarer.api.impl.campaign.missions.hub.MissionTrigger
class[9] : exerelin.campaign.intel.missions.remnant.RemnantBrawl
class[10] : com.fs.starfarer.campaign.fleet.CampaignFleet
class[11] : com.fs.util.container.repo.ObjectRepository
class[12] : com.fs.starfarer.campaign.StarSystem
class[13] : com.fs.starfarer.api.impl.campaign.procgen.Constellation
class[14] : com.fs.starfarer.campaign.StarSystem$UpdateFromHyperspaceLocation
class[15] : com.fs.starfarer.campaign.BaseLocation$LocationToken
class[16] : com.fs.starfarer.campaign.Hyperspace
class[17] : com.fs.starfarer.campaign.CampaignEngine
converter-type[3] : com.fs.starfarer.campaign.save.I
version : not available
-------------------------------
at com.thoughtworks.xstream.core.util.SerializationMembers.callReadResolve(SerializationMembers.java:82)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:282)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:73)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:98)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:91)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:85)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:73)
at com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryIntoMap(MapConverter.java:110)
at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:98)
at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:92)
at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:87)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:73)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:98)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:91)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:85)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:73)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:98)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:91)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:85)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:73)
at com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryIntoMap(MapConverter.java:110)
at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:98)
at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:92)
at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:87)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:73)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:98)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:91)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:85)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:73)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:98)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:91)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:85)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:73)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:98)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:91)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:85)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1486)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1466)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1346)
at com.fs.starfarer.campaign.save.CampaignGameManager.o00000(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source)
at com.fs.starfarer.ui.O.dismiss(Unknown Source)
at com.fs.starfarer.ui.impl.for.dismiss(Unknown Source)
at com.fs.starfarer.campaign.save.LoadGameDialog.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.o0O0.buttonPressed(Unknown Source)
at com.fs.starfarer.ui.int.?00000(Unknown Source)
at com.fs.starfarer.ui.int.processInput(Unknown Source)
at com.fs.starfarer.ui.o0O0.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.thissuper.processInput(Unknown Source)
at com.fs.starfarer.ui.g$Oo.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.thissuper.processInput(Unknown Source)
at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.g.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.thissuper.processInput(Unknown Source)
at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.thissuper.processInput(Unknown Source)
at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.thissuper.processInput(Unknown Source)
at com.fs.starfarer.E.I.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.thissuper.processInput(Unknown Source)
at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.O.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.thissuper.processInput(Unknown Source)
at com.fs.starfarer.ui.o000.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.o000.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.thissuper.processInput(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.processInput(Unknown Source)
at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher.super(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at data.hullmods.Avali_AeroponicTube.advanceInCampaign(Avali_AeroponicTube.java:45)
at com.fs.starfarer.campaign.fleet.FleetData.syncIfNeeded(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetData.getMembers(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetData.getMembersListCopy(Unknown Source)
at com.fs.starfarer.api.impl.campaign.skills.BaseSkillEffectDescription.getTotalOP(BaseSkillEffectDescription.java:666)
at com.fs.starfarer.api.impl.campaign.skills.BaseSkillEffectDescription.computeAndCacheThresholdBonus(BaseSkillEffectDescription.java:327)
at com.fs.starfarer.api.impl.campaign.skills.BaseSkillEffectDescription.computeAndCacheThresholdBonus(BaseSkillEffectDescription.java:298)
at com.fs.starfarer.api.impl.campaign.skills.ContainmentProcedures$Level1.apply(ContainmentProcedures.java:43)
at com.fs.starfarer.campaign.CharacterStats.applyFleetwideToStats(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMember.updateStats(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMember.readResolve(Unknown Source)
at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.thoughtworks.xstream.core.util.SerializationMembers.callReadResolve(SerializationMembers.java:78)
... 228 more
85789 [Thread-3] INFO com.fs.starfarer.campaign.save.CampaignGameManager - 载入阶段11
    复现步骤:
    上午打了控制台mod 然后势立争霸”一决雌雄“战斗中用了无敌之类的功能 保存后 下午就无法读档可 能创建新档。我回档到上个保存点 依然是这个报错
    ### 游戏信息

    游戏版本:                0.97a-RC11

    ### 系统信息

    操作系统:Microsoft Windows 11 专业版

    版本:10.0.22621 暂缺 Build 22621

    总可用内存:`31.85G`


    Java版本:`1.7.0_79`

    Java路径:E:\Starsector\jre


    虚拟机参数:java.exe -XX:CompilerThreadPriority=1 -XX:+CompilerThreadHintNoPreempt -Djava.library.path=native\\windows -XX:+UseG1GC -Xms4096m -Xmx4096m -Xss2048k -XX:PermSize=192m -XX:MaxPermSize=192m -classpath janino.jar;commons-compiler.jar;commons-compiler-jdk.jar;starfarer.api.jar;starfarer_obf.jar;jogg-0.0.7.jar;jorbis-0.0.15.jar;json.jar;lwjgl.jar;jinput.jar;log4j-1.2.9.jar;lwjgl_util.jar;fs.sound_obf.jar;fs.common_obf.jar;xstream-1.4.10.jar -Dcom.fs.starfarer.settings.paths.saves=..\\saves -Dcom.fs.starfarer.settings.paths.screenshots=..\\screenshots -Dcom.fs.starfarer.settings.paths.mods=..\\mods -Dcom.fs.starfarer.settings.paths.logs=. com.fs.starfarer.StarfarerLauncher

    堆栈初始大小(`-Xms`):`4096m`

    堆栈最大大小(`-Xmx`):`4096m`


    ### Mod信息

    |Mod名称                           |Mod版本   |已启用     |
    |-|-|-|
    |LazyLib                         |2.8b    |是       |
    |zz GraphicsLib                  |1.9.0   |是       |
    |MagicLib                        |1.4.6   |是       |
    |AEF-阿瓦隆远征队                      |Ver:0.5.3-Sub:1 (进入英仙座 intoPersean)|是       |
    |Console Commands                |2024.10.04|是       |
    |Diable Avionics - Seal balance patch.|1.0.1   |是       |
    |Diable Avionics - Seal ed.      |1.0.0   |是       |
    |HMI反派势力                         |0.0.5c  |是       |
    |Lukas的随手之作                      |2.5.14  |是       |
    |LunaLib                         |1.8.7   |是       |
    |势力争霸 [Nexerelin]                |0.11.3c |是       |
    |布莱顿联盟                           |0.0.3d  |是       |
    |海盗拓展 [Underworld]               |1.8.3   |是       |
    |风险矿业公司                          |0.3.8   |是       |
    |Diamond                         |1.699   |否       |
    |Luddic Enhancement              |1.2.6e  |否       |
    |Luddic Enhancement IED          |1.2.6a  |否       |
    |zzz Mikohime Additionals Settings|1.1.1   |否       |
    |卢德骑士团                           |1.3.6   |否       |
    |星际帝国 [Interstellar Imperium]    |2.6.4   |否       |
    |普拉斯里蒂废品大师[P.S.M.]               |0.6.8   |否       |
    |沃尔科夫工业集团[VIC]                   |1.6.3a  |否       |

    (以上内容由 远行星号 报错信息收集工具 自动生成,生成工具版本 `1.1.2`).


    评分

    参与人数 1星币 +5 收起 理由
    MAJOR_Kai + 5 感谢您的汇报。

    查看全部评分

    驱逐技师

     楼主| 发表于 2 小时前 | 显示全部楼层
    求大佬解救

    战列舰长

    发表于 2 小时前 | 显示全部楼层
    看起来是AEF-阿瓦隆远征队的问题,你可以尝试一下更新mod,但我估计你这个档应该没救了

    点评

    好吧  详情 回复 发表于 2 小时前

    驱逐技师

     楼主| 发表于 2 小时前 | 显示全部楼层
    fniess 发表于 2026-3-5 16:48
    看起来是AEF-阿瓦隆远征队的问题,你可以尝试一下更新mod,但我估计你这个档应该没救了 ...

    好吧

    点评

    去存档里找到对应存档位的campaign.xml 把Avali_AeroponicTube批量全部删除试试  详情 回复 发表于 1 小时前

    驱逐技师

     楼主| 发表于 1 小时前 | 显示全部楼层
    找了找问题 已经解决了

    势力巨擘

    发表于 1 小时前 | 显示全部楼层

    去存档里找到对应存档位的campaign.xml
    把<st>Avali_AeroponicTube</st>批量全部删除试试

    战列舰长

    TX-T My Love !

    发表于 1 小时前 | 显示全部楼层
    本帖最后由 MAJOR_Kai 于 2026-3-5 12:33 编辑

        看上去是气培模块那个船插导致的空指针异常, 马上去修复。

    # 26.03.05 #
    PS: 漏洞已修复。

    驱逐技师

     楼主| 发表于 1 小时前 | 显示全部楼层
    E:\Starsector\mods\avali_explorer_v0.5.3s1\data\hullmods 下的Avali_AeroponicTube.java  出错了 【变量重名冲突:advanceInCampaign方法的入参是FleetMemberAPI member,但方法内循环又定义了for (FleetMemberAPI member : ...),重名导致对象引用混乱,触发空指针。】【非空检查顺序颠倒:先获取player.getCargo()、clock.getDay(),再检查player == null,如果player为空,提前执行的代码直接报错。】【未做多层非空判断:没有检查player.getFleetData()、member.getVariant()、member.getHullSpec()是否为空,任意一个为空都会触发空指针。】

    驱逐技师

     楼主| 发表于 1 小时前 | 显示全部楼层
    package data.hullmods;
    import com.fs.starfarer.api.Global;
    import com.fs.starfarer.api.combat.ShipAPI;
    import com.fs.starfarer.api.campaign.CargoAPI;
    import com.fs.starfarer.api.fleet.FleetMemberAPI;
    import com.fs.starfarer.api.combat.BaseHullMod;
    import com.fs.starfarer.api.combat.ShipAPI.HullSize;
    import com.fs.starfarer.api.campaign.CampaignFleetAPI;
    import com.fs.starfarer.api.combat.MutableShipStatsAPI;
    import com.fs.starfarer.api.campaign.CampaignClockAPI;
    import com.fs.starfarer.api.impl.campaign.ids.Commodities;
    import java.util.Map;
    import java.util.HashMap;

    public class Avali_AeroponicTube extends BaseHullMod{
        // delivery_date = 3, 10, 17, 24;
        // refresh_date = 7, 14, 21, 28;
        // food_get = 180, 70, 30;
        private boolean refreshed = true;
        // 关键修复:使用无泛型的HashMap,并在获取值时强制转换为Float
        private static Map storage = new HashMap();
       
        static {
            storage.put(HullSize.DESTROYER, 100f);
            storage.put(HullSize.CRUISER, 250f);
            storage.put(HullSize.CAPITAL_SHIP, 600f);
        }    //舰船级别降低载货, 护卫舰禁用

        @Override
        public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {
            // 非空检查+判空返回
            if (stats == null || !storage.containsKey(hullSize)) return;
            // 强制转换为Float,解决类型转换错误
            float mod = ((Float) storage.get(hullSize)).floatValue();
            if (stats.getVariant() != null && stats.getVariant().getHullSpec() != null) {
                mod = Math.min(stats.getVariant().getHullSpec().getCargo(), mod);
            }
            stats.getCargoMod().modifyFlat(id, -1f * mod);
        }    //载货量降低最小值

        @Override
        public void advanceInCampaign(FleetMemberAPI member, float amount) {
            // 第一步先做全量非空检查,空则直接返回(解决核心空指针)
            CampaignFleetAPI player = Global.getSector().getPlayerFleet();
            if (player == null) return;
            if (player.getFleetData() == null || player.getFleetData().getMembersListCopy() == null) return;
            CargoAPI cargo = player.getCargo();
            if (cargo == null) return;
            CampaignClockAPI clock = Global.getSector().getClock();
            if (clock == null) return;
            
            int days = clock.getDay();
            int B_class = 0;
            int C_class = 0;
            int D_class = 0;

            // 解决变量重名:把循环内的member改为fm,避免和入参冲突
            for (FleetMemberAPI fm : player.getFleetData().getMembersListCopy()) {
                // 多层非空检查,避免任意对象为空
                if (fm == null || fm.isMothballed()) continue;
                if (fm.getVariant() == null || !fm.getVariant().hasHullMod("Avali_AeroponicTube")) continue;
                if (fm.getHullSpec() == null || fm.getHullSpec().getHullSize() == null) continue;
                
                HullSize hullSize = fm.getHullSpec().getHullSize();
                if (hullSize == HullSize.CAPITAL_SHIP) B_class++;
                else if (hullSize == HullSize.CRUISER) C_class++;
                else if (hullSize == HullSize.DESTROYER) D_class++;
            }    //统计舰船 级别-数量

            // 计算食物产量,避免负数
            float foodTotal = (float)B_class*180f + (float)C_class*70f + (float)D_class*30f;
            float FoodToGet = Math.min(Math.max(foodTotal, 0f), cargo.getSpaceLeft());
            
            // 生产+刷新逻辑
            if ((days == 3 || days == 10 || days == 17 || days == 24) && refreshed){
                cargo.addCommodity(Commodities.FOOD, FoodToGet);
                this.refreshed = false;
            } else if (days == 7 || days == 14 || days == 21 || days == 28 ){
                this.refreshed = true;
            }
        }    //执行获取, 获取刷新

        @Override
        public boolean isApplicableToShip(ShipAPI ship) {
            if (ship == null || ship.getVariant() == null) return false;
            return ship.getVariant().getHullSize() != HullSize.FRIGATE;
        }

        @Override
        public String getUnapplicableReason(ShipAPI ship) {
            if (ship == null || ship.getVariant() == null) return null;
            if (ship.getVariant().getHullSize() == HullSize.FRIGATE){
                return "不适用于护卫舰";
            }
            return null;
        }

        @Override
        public String getDescriptionParam(int index, ShipAPI.HullSize hullSize) {
            if (index == 0) { return "600/250/100/护卫舰禁用"; }
            if (index == 1) { return "3/10/17/24"; }
            if (index == 2) { return "180/70/30/护卫舰禁用"; }
            if (index == 3) { return "到达载货上限将停止生产"; }
            return null;
        }
    }

    点评

    哈哈,好思路,但是检测不用加的这么麻烦。 if ( Global.getSector() != null && Global.getSector().getPlayerFleet() !=null && Global.getSector().getPlayerFleet().getCargo() != null ) { 就行  详情 回复 发表于 1 小时前

    驱逐技师

     楼主| 发表于 1 小时前 | 显示全部楼层
    新代码 用编译器替换一下 游戏又能完了 美滋滋

    战列舰长

    TX-T My Love !

    发表于 1 小时前 | 显示全部楼层
    赵松乔 发表于 2026-3-5 12:15
    package data.hullmods;
    import com.fs.starfarer.api.Global;
    import com.fs.starfarer.api.combat.ShipAP ...

        哈哈,好思路,但是检测不用加的这么麻烦。

                    if ( Global.getSector() != null
                    && Global.getSector().getPlayerFleet() !=null
                    && Global.getSector().getPlayerFleet().getCargo() != null ) {

    就行了

    本版积分规则

    Archiver|手机版|小黑屋|远行星号中文论坛

    GMT+8, 2026-3-5 19:00

    Powered by Discuz! X3.5

    © 2001-2077 Tencent Cloud | Durian Software Studio

    快速回复 返回顶部 返回列表