- Home /
Unity Anroid integrated into a different Android app is crashing on Application.Quit()
After we exported the project to an Android project, we integrated it with an existing project from which we're launching our game. This was working correctly, but Application.Quit() was making the entire app quit instead of just the Unity activity. So we made it launch on a different process by adding this to the manifest:
android:process=":UnityKillsMe"
This solved the issue, however, after using Proguard to obfuscate the code, things stopped working. Unity still launches correctly, however when quitting, the app shows a crash error that Unity stopped, even though the app itself is still working. Relaunching Unity even works correctly, but on Application.Quit(), the crash error still shows. Here's the error log when it happens:
12-02 15:01:35.112: E/AndroidRuntime(4342): FATAL EXCEPTION: UnityMain
12-02 15:01:35.112: E/AndroidRuntime(4342): Process: mobi.foo.touch:UnityKillsMe, PID: 4342
12-02 15:01:35.112: E/AndroidRuntime(4342): java.lang.Error: FATAL EXCEPTION [UnityMain]
12-02 15:01:35.112: E/AndroidRuntime(4342): Unity version : 5.2.3f1
12-02 15:01:35.112: E/AndroidRuntime(4342): at com.unity3d.player.UnityPlayer.nativeDone(Native Method)
12-02 15:01:35.112: E/AndroidRuntime(4342): at com.unity3d.player.UnityPlayer.f(Unknown Source)
12-02 15:01:35.112: E/AndroidRuntime(4342): at com.unity3d.player.UnityPlayer.g(Unknown Source)
12-02 15:01:35.112: E/AndroidRuntime(4342): at com.unity3d.player.UnityPlayer$15.run(Unknown Source)
12-02 15:01:35.112: E/AndroidRuntime(4342): at com.unity3d.player.UnityPlayer.executeGLThreadJobs(Unknown Source)
12-02 15:01:35.112: E/AndroidRuntime(4342): at com.unity3d.player.UnityPlayer$b.run(Unknown Source)
12-02 15:01:35.122: E/ActivityManager(890): App crashed! Process: mobi.foo.touch:UnityKillsMe
How can this be solved? What's causing this issue?
Answer by Yury-Habets · Dec 04, 2015 at 11:08 AM
Your workaround is correct. When Unity quits the activity, it kills the entire process, because... Well there are reasons to do this way ;) So using a separate process is the correct approach.
However, the crash should not happen. If you could file a bug report, with the project attached (or a small repro project) - we'll take a look. Is it also device dependent?
Hi Yury, thank you for your feedback. We found out what the problem was. Seems like the JNI classes were being encrypted by Proguard. Once we added them to the exclude list, it worked. Thanks!
Your answer
Follow this Question
Related Questions
Android Build Crashing on some of the devices, Error: Animator::Transfer(SafeBinaryRead&) 0 Answers
Problems porting a Unity game to android 1 Answer
Unity Android build support for support v7 v24.x.x 1 Answer
Input Fields not actually taking in user data on android build 0 Answers
Android Unity game crashed on some devices after splash screen 0 Answers