Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

json导出失败,byRelease在commandlet下崩溃,在非standalone下触发断言,但是可以continue过去 #25

Closed
sarkura opened this issue Jan 5, 2022 · 16 comments

Comments

@sarkura
Copy link

sarkura commented Jan 5, 2022

触发JsonWriter.h中的WriteObjectStart()函数中的check(CanWriteObjectWithoutIdentifier());
看起来像是Element->Identifier导致的

@hxhb
Copy link
Owner

hxhb commented Jan 5, 2022

触发JsonWriter.h中的WriteObjectStart()函数中的check(CanWriteObjectWithoutIdentifier()); 看起来像是Element->Identifier导致的

该问题已解决,出现这个问题是因为工程里有无效的引用,在引用中存在,但是资源被删掉了,我在插件中做了检测,不过你们工程中的引用问题还是建议自己解决一下。更新最新的Master分支即可。

@hxhb hxhb closed this as completed Jan 5, 2022
@sarkura
Copy link
Author

sarkura commented Jan 5, 2022

好的谢谢,我也发现好像时引用导致的,现在在查到底是啥

@sarkura
Copy link
Author

sarkura commented Jan 5, 2022

但是其实我已经使用的最新的分支,依旧会出现这个问题

@hxhb
Copy link
Owner

hxhb commented Jan 5, 2022

你什么时候更新的?我是今天早上才提交的这个fix serialize json crash issue

把你的crash栈发一下。

@sarkura
Copy link
Author

sarkura commented Jan 5, 2022

好的,中午更新了发现的这个问题,
LoginId:f612f6054df0dc86dc5e85969e0fc805
EpicAccountId:67a3136c9e2147b5a944955de1da9a77

Assertion failed: CanWriteObjectWithoutIdentifier() [File:C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Json\Public\Serialization/JsonWriter.h] [Line: 94]

UE4Editor_Core!AssertFailedImplV() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:104]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:461]
UE4Editor_HotPatcherEditor!FDebug::CheckVerifyFailed<wchar_t [1]>() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Core\Public\Misc\AssertionMacros.h:156]
UE4Editor_HotPatcherEditor!TJsonWriter<wchar_t,TPrettyJsonPrintPolicy<wchar_t> >::WriteObjectStart'::6'::Impl::ExecCheckImplInternal() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Json\Public\Serialization\JsonWriter.h:94]
UE4Editor_HotPatcherEditor!TJsonWriter<wchar_t,TPrettyJsonPrintPolicy<wchar_t> >::WriteObjectStart() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Json\Public\Serialization\JsonWriter.h:94]
UE4Editor_HotPatcherEditor!FJsonSerializer::Serialize<wchar_t,TPrettyJsonPrintPolicy<wchar_t> >() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Json\Public\Serialization\JsonSerializer.h:416]
UE4Editor_HotPatcherEditor!FJsonSerializer::Serialize<wchar_t,TPrettyJsonPrintPolicy<wchar_t> >() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Json\Public\Serialization\JsonSerializer.h:131]
UE4Editor_HotPatcherEditor!THotPatcherTemplateHelper::TSerializeStructAsJsonString() [D:\ClentForSourceBuild\Plugins\HotPatcher\Source\HotPatcherRuntime\Public\HotPatcherTemplateHelper.hpp:128]
UE4Editor_HotPatcherEditor!ReleaseWorker::ExportNewReleaseWorker() [D:\ClentForSourceBuild\Plugins\HotPatcher\Source\HotPatcherEditor\Private\CreatePatch\ReleaseProxy.cpp:109]
UE4Editor_HotPatcherEditor!UE4Function_Private::TFunctionRefCaller<bool (__cdecl*)(FHotPatcherReleaseContext &),bool __cdecl(FHotPatcherReleaseContext &)>::Call() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Core\Public\Templates\Function.h:540]
UE4Editor_HotPatcherEditor!UE4Function_Private::TFunctionRefBase<UE4Function_Private::TFunctionStorage<0>,bool __cdecl(FHotPatcherReleaseContext &)>::operator()() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Core\Public\Templates\Function.h:677]
UE4Editor_HotPatcherEditor!UReleaseProxy::DoExport() [D:\ClentForSourceBuild\Plugins\HotPatcher\Source\HotPatcherEditor\Private\CreatePatch\ReleaseProxy.cpp:57]
UE4Editor_HotPatcherEditor!UHotReleaseCommandlet::Main() [D:\ClentForSourceBuild\Plugins\HotPatcher\Source\HotPatcherEditor\Classes\Commandlets\HotReleaseCommandlet.cpp:111]
UE4Editor_Cmd!FEngineLoop::PreInitPostStartupScreen() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:3369]
UE4Editor_Cmd!GuardedMain() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Launch\Private\Launch.cpp:127]
UE4Editor_Cmd!GuardedMainWrapper() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137]
UE4Editor_Cmd!WinMain() [C:\Engine\unrealengine-4.26\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:268]
UE4Editor_Cmd!__scrt_common_main_seh() [d:\a01_work\6\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

@hxhb
Copy link
Owner

hxhb commented Jan 5, 2022

看起来是同一个问题,我早上修复之后就没再复现出这样的问题。
你可以在这里断点看一下NewReleaseVersion中的AssetInfoPlatformAssets里是不是有为None的元素:
image

@hxhb hxhb reopened this Jan 5, 2022
@sarkura
Copy link
Author

sarkura commented Jan 5, 2022

PlatformAssets为空,我是先打包了安卓然后使用byRelease,没有使用Cook会是这个产生的影响吗

@hxhb
Copy link
Owner

hxhb commented Jan 5, 2022

PlatformAssets结构为空是正常的,我的意思是有没有key为None的元素。

@sarkura
Copy link
Author

sarkura commented Jan 5, 2022

有的,这个就是我说的Element->Identifier为空

@sarkura
Copy link
Author

sarkura commented Jan 5, 2022

AssetInfo里存在Key为空的现象

@sarkura
Copy link
Author

sarkura commented Jan 5, 2022

我在FAssetDependenciesInfo去判了一下可以崩溃问题已经解决了谢谢

@hxhb
Copy link
Owner

hxhb commented Jan 5, 2022

@sarkura 我刚才往dev分支提交了个修复,你可以用这个分支版本再测试一下。

@hxhb
Copy link
Owner

hxhb commented Jan 5, 2022

如果dev分支没问题,在issue里说一下。

@sarkura
Copy link
Author

sarkura commented Jan 5, 2022

好的

@sarkura
Copy link
Author

sarkura commented Jan 5, 2022

谢谢测试完成,已修复

@hxhb
Copy link
Owner

hxhb commented Jan 5, 2022

@sarkura OK,那我就发布到master了。

@hxhb hxhb closed this as completed Jan 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants