Symbolicating crash dumps for Android in Unreal Engine 4

Do you know what is more annoying than a crash? A crash that you don’t know how to track down. You are praying for not being in a situation where no debugger is attached or there is no crash log. Sadly – this is a very common situation when you are working with the external engine, on a mobile device.

Android c++ crash logs are even more nasty, because of their binary format. In fact – they are minidumps, the same format the Microsoft is using for dumping Windows crash data. To encrypt the Android’s minidumps you need to do some voodoo with Google Breakpad.

Multidexing in Unreal Engine 4

When your app is growing, also its needs. Google Play, Facebook, analytics systems, advertising, crash reporters and more are put into the build and at some point the infamous “64k methods” problem occurs. Why? According to the Android Developer’s User Guide:

In other words – you can’t have more than 65,536 methods in Your java code (and it’s not so difficult to do this, because the full Google Play SDK uses about half of this limit).

Dealing with this problem is rather easy… if you are using Gradle. Unfortunatelly Unreal Engine 4 still uses Ant. So, what do we do when the “64k problem” hits us? Do we cry and fall into despair? No, no, no… This is how you can fix this:

Unreal Engine 4 – Debugging on Android

andue4Debugging is the prose of life for every programmer. In Unreal Engine 4 there are many tools for debugging and profiling a game on Windows and Mac. Even for iOS, the XCode is a fine tool for nice bug hunting. But the Android was always… odd. For a long time the logcat was the only source of information about what is going inside the Unreal Engine game and it was always frustrating when something is crashing on device only. Theoretically, if something works in the editor it should works on the device too, but… this is theory and practice shows something completely different ;)

A new era for Android on Unreal Engine?

It might be, because with Visual Studio 2015 we received a powerful IDE that supports programming and debugging for Android (and other mobile platforms too) out of the box! And, it appears, that with the same tools we can easily debug the native c++ code on Android device!

Let’s get started.