diff --git a/android/src/mindustry/android/AndroidLauncher.java b/android/src/mindustry/android/AndroidLauncher.java index be35875dad..6c0a695000 100644 --- a/android/src/mindustry/android/AndroidLauncher.java +++ b/android/src/mindustry/android/AndroidLauncher.java @@ -19,6 +19,7 @@ import arc.util.serialization.*; import mindustry.*; import mindustry.game.Saves.*; import mindustry.io.*; +import mindustry.net.*; import mindustry.ui.dialogs.*; import java.io.*; @@ -145,7 +146,7 @@ public class AndroidLauncher extends AndroidApplication{ useImmersiveMode = true; depth = 0; hideStatusBar = true; - //errorHandler = ModCrashHandler::handle; + errorHandler = CrashSender::log; }}); checkFiles(getIntent()); diff --git a/core/src/mindustry/net/CrashSender.java b/core/src/mindustry/net/CrashSender.java index 1b24b2af3a..bcc25cea43 100644 --- a/core/src/mindustry/net/CrashSender.java +++ b/core/src/mindustry/net/CrashSender.java @@ -21,6 +21,18 @@ import static mindustry.Vars.net; public class CrashSender{ + public static void log(Throwable exception){ + try{ + Core.settings.getDataDirectory().child("crashes").child("crash_" + System.currentTimeMillis() + ".txt").writeString(Strings.parseException(exception, true)); + }catch(Throwable ignored){ + } + + if(exception instanceof RuntimeException){ + throw (RuntimeException)exception; + } + throw new RuntimeException(exception); + } + public static void send(Throwable exception, Cons writeListener){ try{