Android Arm64 Startup Crash on S7 Exynos

Hi

Despite beeing said fixed in one of the preview builds here I still managed to get a crash done on startup on my s7 Exynos.

Repro: Make a new project on 4.13.1 from Github and package for ASTC with es2 and arm7 arm64 enabled. This leads to immediate crash.

Also I would like to request a wiki update for attaching debbuger from visual studio as the way it should be done changes so frequently recently.

THX!

Edit: Codeworks 1R4, ndk r11c, api21

SpaceHarry,

4.13.1 is not fully released yet. Could you please provide me with the changelist from the engine you’re working in?

In order to better assist you, I’m going to need for you to provide me the logs from your mobile device.

  • Attach your phone to the computer
  • Go here: C:\NVPACK\android-sdk-windows\tools
  • Open up Monitor.bat
  • Launch the program and save the logs

If you cannot get Monitor.bat to open, please go to:

  • C:\NVPACK\android-sdk-windows\tools\lib\monitor-x86
  • Open up Monitor.exe
  • Follow the instructions above

Make sure that you highlight all of the logs, because they do not save unless they’re highlighted.

Thank you!

Hi Samantha,

Here are the logs from the monitor.bat when starting the app.

For the changelist of the github version I am using I am not sure what version number you need or where I can find it. The Build.version file in the build folder says this:

{
“MajorVersion”: 4,
“MinorVersion”: 13,
“PatchVersion”: 1,
“Changelist”: 0,
“IsLicenseeVersion”: 0,
“BranchName”: “”
}

About 5 days in the past version from github. :slight_smile:

Have a nice day!

Spaceharry,

Thanks for providing me with the logs. I see that you’re running into a Signal11 crash with your device. Are you trying to package for Daydream? If not, please try using Android-19 and Android-22 to see which works best for your project.

Please upload screenshots of your Android SDK settings.

Thanks!

Hello Samantha,

GoogleVR Plugin was never activated, so I guess I never packaged for Daydream. I will try Android API19 and API22 with Arm64.

Here is a screenshot:

Again this is happening on the Exynos European version of S7. Thanks for not forgetting about Europe :slight_smile:

Just a quick update:

After installing API22 from Codeworks and trying to rebuild engine and project I run into this wchar not found error in PlatformCrt.h
https://answers.unrealengine.com/questions/370017/wcharh-file-not-found.html and here:
https://answers.unrealengine.com/questions/251663/compiling-android-fatal-error-wcharh-file-not-foun.html

So for now I am stuck with this error…

You also sugessted Android API 19, but does API19 support ARM64 with UE?

From what I gathered, Android-21 is typically used for those who are packaging for GoogleVR aka Daydream. If that’s what you’re aiming to achieve, activate the proper plugins and the build should work properly for you. If it doesn’t, upload those logs for me.

I am using Android-19 and I just packaged for Android ETC2 without any trouble with ARM64 checked in the Project Settings > Android Settings.

Could you upload your logs from API22 for me?

Feel free to provide me exact reproduction steps to insure I am running the same exact test as you, steps or screenshots are greatly appreciated.

Thanks!

Hi Samantha,

I am not aiming for GoogleVR. I just wanted too see the performance differences when using ARM64 instead of ARM7.

As I wrote, building ARM64 with API 19 or 21 is not the problem. But starting the app on the phone is. Did you try starting a ARM64 built project on Samsung Galaxy S7 Exynos Version? It just crashes for me.

For me I packaged with ASTC, but I dont think it would make a difference.

As for logs for API22: Its about the same as the links above concerning the wchar file not found problem.

Reproduction Steps: Download latest 4.13 version from Github. Make third person template. Set everything up for API21 or API19. Package project for ARM64 and ARM7. Install app on Galaxy S7 Exynos. Start…

Thank you !

Spaceharry,

I checked in both 4.13 Binary and 4.13 Source for the error you’re running in to. I am using a Samsung Galaxy S7 which is on Android Version 6.0.1.

The binary project did not cause any trouble once packaged and installed onto the device. I did not receive a signal 11 crash. I used ATSC for each build.

Are you able to reproduce this issue in a clean, blank project?

Can you show me screenshots of your Project Settings > Platforms > Androids set up looks like?

Regarding the wchar.h not found error, please review this link for a possible solution: https://answers.unrealengine.com/questions/370017/wcharh-file-not-found.html

Looking forward to hearing back from you, thanks!

Good Day Samantha,

Thank you very much for testing ! I downloaded the binary version of 4.13 today and there ARM64 app doesnt crash on Samsung S7 Exynos on Version 6.0.1.

I will download the latest 4.13.1 version from github again and will test again and see if this is only related to 4.13.1

As I mentioned in the initial post of this thread, I saw that there was a github commit in one of the preview builds of 4.13 which concerned this ARM64 start up crash and I am 100% sure that I downloaded it from github after release of 4.13 was announced.

Thank you !

Hi Samantha,

Hope you had a good weekend ! :slight_smile:

In the meantime I downloaded the latest 4.13 version from Github and I still managed to get this crash with ARM64 on Galaxy S7 Exynos version. The reason for this is maybe that the ARM64 fix from one of the preview builds isnt merged with this branch?

If you test it again with a c++ third person template be sure to packaging it for ASTC, ARM7/ARM64 and then only install ARM64 test it on Samsung S7 Exynos version if possible(Not US Version) to run into the same error. I used the same Android SDK files as in the screeshot above. Target API is 21. Minimum also 21.

Here is a screenshot of the branch I downloaded where you also see the latest commit:

Thank You !

I have entered UE-36198 for this issue. I finally was able to reproduce it with a different version of GitHub on CL 3128484. Hopefully our Android developer will have further information to resolve this issue, or have it resolved in a later build.

What is your devices model number?

Could you please confirm that you have the correct code in AndroidMemory.cpp:

FMalloc* FAndroidPlatformMemory::BaseAllocator()
{
const FPlatformMemoryConstants& MemoryConstants = FPlatformMemory::GetConstants();
// 1 << FMath::CeilLogTwo(MemoryConstants.TotalPhysical) should really be FMath::RoundUpToPowerOfTwo,
// but that overflows to 0 when MemoryConstants.TotalPhysical is close to 4GB, since CeilLogTwo returns 32
// this then causes the MemoryLimit to be 0 and crashing the app
uint64 MemoryLimit = FMath::Min<uint64>( uint64(1) << FMath::CeilLogTwo(MemoryConstants.TotalPhysical), 0x100000000);

#if PLATFORM_ANDROID_ARM64
// todo: track down why FMallocBinned is failing on ARM64
return new FMallocAnsi();
#else
return new FMallocBinned(MemoryConstants.PageSize, MemoryLimit);
#endif
}

Let me know if you have any more information to add! :slight_smile:

Yes its the same code.

My Samsung 7 Model Number is SM-G935F. Its basically the S7 that everybody buys in Europe then finds out that its not the same as in US which Ryan Brucks was so excited about :).

Thank you for assistance !

It looks like this is an issue with the Google Play Games native C++ library for ARM64. Disabling the Online Subsystem GooglePlay plugin will avoid this crash. Previous to 4.13 this library wasn’t included since we were on an older version of the libgpg without ARM64 support.