Text 3D causes crash on Android

It seems as the 3d text component, and the normal 3d text, causes a game crash when running on android platform. The resulting error log is listed below.

Steps to reproduce:

  1. Enable the “Text 3D” plugin, and restart editor.
  2. Create an empty level
  3. Add a “Text 3D” element
  4. Launch on an android device with editor “launch”
  5. Observe the game crash immediately.

My setup:
Ue4.25 - Windows 10
android ndk 21.1.6352462
Device: Sony xperia XZ1 compact

LogPlayLevel: Error:   08-04 21:27:35.148 20490 20577 D UE4     : [2020.08.04-19.27.35:148][  0]LogAndroid: Error: === Critical error: ===
LogPlayLevel: Error:   08-04 21:27:35.148 20490 20577 D UE4     : [2020.08.04-19.27.35:148][  0]LogAndroid: Error:
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: Assertion failed: Stream.VertexBuffer->IsInitialized() [File:D:/Build/++UE4+Licensee/Sync/Engine/Source/Runtime/RenderCore/Private/VertexFactory.cpp] [Line: 209]
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: Vertex buffer was not initialized! Stream 2, Stride 4, Name ColorOnly Mesh Vertices
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2BD3651C libUE4.so(0x0000000007AA951C)!FDebug::CheckVerifyFailedImpl(char const*, char const*, int, char16_t const*, ...)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2CE8D60C libUE4.so(0x0000000008C0060C)![Unknown]()  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2CE65028 libUE4.so(0x0000000008BD8028)!FVertexFactory::GetStreams(ERHIFeatureLevel::Type, EVertexInputStreamType, TArray > >&) const  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2D4FF528 libUE4.so(0x0000000009272528)!void FMeshPassProcessor::BuildMeshDrawCommands, FBaseHS, FBaseDS, TMobileBasePassPSPolicyParamType, FMeshMaterialShader, FMeshMaterialShader, FMeshMaterialShader>, TMobileBasePassShaderElementData >(FMeshBatch const&, unsigned long long, FPrimitiveSceneProxy const*, FMaterialRenderProxy const&, FMaterial const&, FMeshPassProcessorRenderState const&, TMeshProcessorShaders, FBaseHS, FBaseDS, TMobileBasePassPSPolicyParamType, FMeshMaterialShader, FMeshMaterialShader, FMeshMaterialShader>, ERasterizerFillMode, ERasterizerCullMode, FMeshDrawCommandSortKey, EMeshPassFeatures, TMobileBasePassShaderElementData const&)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2D72761C libUE4.so(0x000000000949A61C)!FMobileBasePassMeshProcessor::Process(FMeshBatch const&, unsigned long long, int, FPrimitiveSceneProxy const*, FMaterialRenderProxy const&, FMaterial const&, EBlendMode, FMaterialShadi
ngModelField, ELightMapPolicyType, FLightCacheInterface const* const&)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2D72716C libUE4.so(0x000000000949A16C)!FMobileBasePassMeshProcessor::AddMeshBatch(FMeshBatch const&, unsigned long long, FPrimitiveSceneProxy const*, int)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2D922774 libUE4.so(0x0000000009695774)![Unknown]()  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2D943560 libUE4.so(0x00000000096B6560)![Unknown]()  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2D921C3C libUE4.so(0x0000000009694C3C)!FPrimitiveSceneInfo::CacheMeshDrawCommands(FRHICommandListImmediate&, FScene*, TArrayView const&)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2D923B60 libUE4.so(0x0000000009696B60)!FPrimitiveSceneInfo::AddStaticMeshes(FRHICommandListImmediate&, FScene*, TArrayView const&, bool)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2D924358 libUE4.so(0x0000000009697358)!FPrimitiveSceneInfo::AddToScene(FRHICommandListImmediate&, FScene*, TArrayView const&, bool, bool, bool)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2D99BD5C libUE4.so(0x000000000970ED5C)!FScene::UpdateAllPrimitiveSceneInfos(FRHICommandListImmediate&, bool)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2D766DE8 libUE4.so(0x00000000094D9DE8)!FMobileSceneRenderer::Render(FRHICommandListImmediate&)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2DA2B8B8 libUE4.so(0x000000000979E8B8)![Unknown]()  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2DA2D7DC libUE4.so(0x00000000097A07DC)![Unknown]()  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2BB19C90 libUE4.so(0x000000000788CC90)!FNamedTaskThread::ProcessTasksNamedThread(int, bool)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2BB18CB0 libUE4.so(0x000000000788BCB0)!FNamedTaskThread::ProcessTasksUntilQuit(int)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2CDC4608 libUE4.so(0x0000000008B37608)!RenderingThreadMain(FEvent*)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2CDE8630 libUE4.so(0x0000000008B5B630)!FRenderingThread::Run()  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2BC13174 libUE4.so(0x0000000007986174)!FRunnableThreadPThread::Run()  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007C2BB14EA8 libUE4.so(0x0000000007887EA8)!FRunnableThreadPThread::_ThreadProc(void*)  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007CD00F00A4 libc.so(0x00000000000920A4)![Unknown]()  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error: [Callstack] 0x0000007CD0081968 libc.so(0x0000000000023968)![Unknown]()  []
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error:
LogPlayLevel: Error:   08-04 21:27:35.149 20490 20577 D UE4     : [2020.08.04-19.27.35:149][  0]LogAndroid: Error:

Did you resolved this issue? I’m having the same problem in Quest build whenever I’m using Text3D

FYI this was addressed in 4.27.2 Hotfix:

Jira UE-116023, github commit: https://github.com/EpicGames/UnrealEngine/commit/5105bf9863c0612b0b55d5020270ec38be0e4afb

If you’re using Oculus UE fork, you can just patch your StaticMesh.cpp file manually until Oculus updates their fork. I tested this with Oculus 4.27.1 and it’s working ok.

1 Like