Problem:
When I use std::stringstream in Unreal Engine on Android, I get a crash when running the app on the phone.
Note:
Running the app on my Desktop does not crash.
How to reproduce:
Install Unreal Engine 5.6
In the Unreal editor, go to File -> New Project
Select First Person and C++
Add this code somewhere it gets executed:
std::stringstream ss{}; ss << "someLongStringToPreventShortStringOptimization";This also crashes with the same error:
std::string{} + "someLongStringToPreventShortStringOptimization";This runs fine:
std::string{"someLongStringToPreventShortStringOptimization"};Launch on your Android phone
When I do this, I get following crash:
LogPlayLevel: Error: UAT: 08-01 13:07:09.039 1414 1844 D UE : Fatal error: [File:Runtime/Core/Public/HAL/MallocBinnedCommon.h] [Line: 894]
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : FMallocBinned Attempt to GetAllocationSizeExternal an unrecognized pointer 0x72203668a0
LogPlayLevel: Error: UAT: 08-01 13:07:09.039 1414 1844 D UE : [2025.08.01-11.07.09:039][ 0]Fatal error: [File:Runtime/Core/Public/HAL/MallocBinnedCommon.h] [Line: 894]
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : FMallocBinned Attempt to GetAllocationSizeExternal an unrecognized pointer 0x72203668a0
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : 0x0000007201DCB77C libUnreal.so(0x0000000002AF477C)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : 0x0000007201FB5060 libUnreal.so(0x0000000002CDE060)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : 0x0000007201F7393C libUnreal.so(0x0000000002C9C93C)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : 0x000000720931C4CC libUnreal.so(0x000000000A0454CC)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : 0x000000720276081C libUnreal.so(0x000000000348981C)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : 0x0000007202A4FA78 libUnreal.so(0x0000000003778A78)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : 0x00000072091F375C libUnreal.so(0x0000000009F1C75C)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : 0x00000072091EA5D4 libUnreal.so(0x0000000009F135D4)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.039 1414 1844 D UE : 0x00000072091D8D04 libUnreal.so(0x0000000009F01D04)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.040 1414 1844 D UE : 0x00000072091E6F54 libUnreal.so(0x0000000009F0FF54)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.040 1414 1844 D UE : 0x000000720920BBC4 libUnreal.so(0x0000000009F34BC4)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.040 1414 1844 D UE : 0x000000730EF557C4 libc.so(0x00000000000CF7C4)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.040 1414 1844 D UE : 0x000000730EEF81AC libc.so(0x00000000000721AC)![Unknown]() []
LogPlayLevel: UAT: 08-01 13:07:09.040 1414 1844 D UE :
LogPlayLevel: UAT: 08-01 13:07:09.040 1414 1844 D UE :
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: === Critical error: ===
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error:
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: Fatal error: [File:Runtime/Core/Public/HAL/MallocBinnedCommon.h] [Line: 894]
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: FMallocBinned Attempt to GetAllocationSizeExternal an unrecognized pointer 0x72203668a0
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x0000007201DCB77C libUnreal.so(0x0000000002AF477C)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x0000007201FB5060 libUnreal.so(0x0000000002CDE060)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x0000007201F7393C libUnreal.so(0x0000000002C9C93C)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x000000720931C4CC libUnreal.so(0x000000000A0454CC)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x000000720276081C libUnreal.so(0x000000000348981C)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x0000007202A4FA78 libUnreal.so(0x0000000003778A78)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x00000072091F375C libUnreal.so(0x0000000009F1C75C)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x00000072091EA5D4 libUnreal.so(0x0000000009F135D4)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x00000072091D8D04 libUnreal.so(0x0000000009F01D04)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x00000072091E6F54 libUnreal.so(0x0000000009F0FF54)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x000000720920BBC4 libUnreal.so(0x0000000009F34BC4)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x000000730EF557C4 libc.so(0x00000000000CF7C4)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error: [Callstack] 0x000000730EEF81AC libc.so(0x00000000000721AC)![Unknown]() []
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error:
LogPlayLevel: Error: UAT: 08-01 13:07:09.040 1414 1844 D UE : [2025.08.01-11.07.09:040][ 0]LogAndroid: Error:
Development environment:
Edition Windows 11 Pro
Version 24H2
Installed on 12/10/2024
OS build 26100.3775
Experience Windows Feature Experience Pack 1000.26100.66.0
Processor AMD Ryzen 7 7800X3D 8-Core Processor 4.20 GHz
Installed RAM 32,0 GB (31,1 GB usable)
System type 64-bit operating system, x64-based processor
Pen and touch No pen or touch input is available for this display
Settings:
[/Script/AndroidPlatformEditor.AndroidSDKSettings]
SDKPath=(Path="C:/Users/huhul/AppData/Local/Android/Sdk")
NDKPath=(Path="C:/Users/huhul/AppData/Local/Android/Sdk/ndk/29.0.13599879")
JavaPath=(Path="C:/Program Files/Android/Android Studio/jbr")
SDKAPILevel=latest
NDKAPILevel=latest
[/Script/Engine.CollisionProfile]
+Profiles=(Name="Projectile",CollisionEnabled=QueryOnly,ObjectTypeName="Projectile",CustomResponses=,HelpMessage="Preset for projectiles",bCanModify=True)
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="Projectile",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False)
+EditProfiles=(Name="Trigger",CustomResponses=((Channel=Projectile, Response=ECR_Ignore)))
[/Script/EngineSettings.GameMapsSettings]
EditorStartupMap=/Game/FirstPerson/Lvl_FirstPerson.Lvl_FirstPerson
LocalMapOptions=
TransitionMap=
bUseSplitscreen=True
TwoPlayerSplitscreenLayout=Horizontal
ThreePlayerSplitscreenLayout=FavorTop
GameInstanceClass=/Script/Engine.GameInstance
GameDefaultMap=/Game/FirstPerson/Lvl_FirstPerson.Lvl_FirstPerson
ServerDefaultMap=/Engine/Maps/Entry
GlobalDefaultGameMode=/Game/FirstPerson/Blueprints/BP_FirstPersonGameMode.BP_FirstPersonGameMode_C
GlobalDefaultServerGameMode=None
[/Script/Engine.RendererSettings]
r.ReflectionMethod=1
r.GenerateMeshDistanceFields=True
r.DynamicGlobalIlluminationMethod=1
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=true
r.AllowStaticLighting=False
r.SkinCache.CompileShaders=True
r.RayTracing.RayTracingProxies.ProjectEnabled=True
r.Shadow.Virtual.Enable=1
r.DefaultFeature.LocalExposure.HighlightContrastScale=0.8
r.DefaultFeature.LocalExposure.ShadowContrastScale=0.8
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
-D3D12TargetedShaderFormats=PCD3D_SM5
+D3D12TargetedShaderFormats=PCD3D_SM6
-D3D11TargetedShaderFormats=PCD3D_SM5
+D3D11TargetedShaderFormats=PCD3D_SM5
Compiler=Default
AudioSampleRate=48000
AudioCallbackBufferFrameSize=1024
AudioNumBuffersToEnqueue=1
AudioMaxChannels=0
AudioNumSourceWorkers=4
SpatializationPlugin=
SourceDataOverridePlugin=
ReverbPlugin=
OcclusionPlugin=
CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0)
CacheSizeKB=65536
MaxChunkSizeOverrideKB=0
bResampleForDevice=False
MaxSampleRate=48000.000000
HighSampleRate=32000.000000
MedSampleRate=24000.000000
LowSampleRate=12000.000000
MinSampleRate=8000.000000
CompressionQualityModifier=1.000000
AutoStreamingThreshold=0.000000
SoundCueCookQualityIndex=-1
[/Script/LinuxTargetPlatform.LinuxTargetSettings]
-TargetedRHIs=SF_VULKAN_SM5
+TargetedRHIs=SF_VULKAN_SM6
[/Script/AIModule.AISystem]
bForgetStaleActors=True
[/Script/Engine.Engine]
NearClipPlane=5.000000
+ActiveGameNameRedirects=(OldGameName="TP_FirstPerson",NewGameName="/Script/MyProject5")
+ActiveGameNameRedirects=(OldGameName="/Script/TP_FirstPerson",NewGameName="/Script/MyProject5")
+ActiveClassRedirects=(OldClassName="TP_FirstPersonPlayerController",NewClassName="MyProject5PlayerController")
+ActiveClassRedirects=(OldClassName="TP_FirstPersonGameMode",NewClassName="MyProject5GameMode")
+ActiveClassRedirects=(OldClassName="TP_FirstPersonCharacter",NewClassName="MyProject5Character")
+ActiveClassRedirects=(OldClassName="TP_FirstPersonCameraManager",NewClassName="MyProject5CameraManager")
[/Script/HardwareTargeting.HardwareTargetingSettings]
TargetedHardwareClass=Desktop
AppliedTargetedHardwareClass=Desktop
DefaultGraphicsPerformance=Maximum
AppliedDefaultGraphicsPerformance=Maximum
[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
bEnablePlugin=True
bAllowNetworkConnection=True
SecurityToken=CA478A2D41DDCCEEB6F23A8046F029A4
bIncludeInShipping=False
bAllowExternalStartInShipping=False
bCompileAFSProject=False
bUseCompression=False
bLogFiles=False
bReportStats=False
ConnectionType=USBOnly
bUseManualIPAddress=False
ManualIPAddress=
[/Script/AndroidRuntimeSettings.AndroidRuntimeSettings]
NDKAPILevelOverride=android-29
Runtime/Core/, have you considered that maybe, the implementation ofstd::stringstreamis broken on UE5.6's Android build? In which case, your best bet might be to report it to UE devs. Either way, if other concatenation methods work, why don't you use that instead ofstd::stringstream? And why do you refuse "answers that say 'do not use std::string; use Unreal Engine types instead.'"? It's hard to help you without more context.std::string{} + std::string{"longstringtopreventsso"}not crashing anymore, or isstd::stringstreamnot crashing anymore on 5.5.4 too? If it fixed both, then the best solution might be to switch to UE5.5.4 for the time being, until the problem gets fixed by UE devs in the next release.