This week I released a new version of my game on the android appstore. With 5.6.1 it worked fine but with 5.6.2f1 some people can't play the game because it crashes on startup. I didn't change much between the versions. Out of about 4000 people I have 35 crash reports, so for most people there is no issue, for some there is (and they give me 1 star rating which hurts my game a bit). Anyone knows what might cause a crash like this? The log is: java.lang.Error: FATAL EXCEPTION [main] Unity version : 5.6.2f1 Device model : Xiaomi MI MIX Device fingerprint: Xiaomi/lithium/lithium:6.0.1/MXB48T/V8.2.3.0.MAHCNDL:user/release-keys Caused by at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1271) at android.graphics.Canvas.drawBitmap(Canvas.java:1368) at android.graphics.Bitmap.createBitmap(Bitmap.java:807) at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:663) at com.unity3d.player.i.onLayout(Unknown Source:0) at android.view.View.layout(View.java:17641) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:17641) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:17641) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585) at android.widget.LinearLayout.onLayout(LinearLayout.java:1494) at android.view.View.layout(View.java:17641) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at com.android.internal.policy.DecorView.onLayout(DecorView.java:731) at android.view.View.layout(View.java:17641) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2346) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2068) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6344) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874) at android.view.Choreographer.doCallbacks(Choreographer.java:686) at android.view.Choreographer.doFrame(Choreographer.java:621) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6236) at java.lang.reflect.Method.invoke(Native Method:0) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
Hello, are you able to reproduce this issue yourself? If so, could you submit a bug report and provide the relevant information, so we would be able to reproduce it as well? I have tried to reproduce the crash with Unity 5.6.2f1 on the Xiaomi Mi 5s device (which should have the same hardware as Xiaomi MI Mix), however Unity app did not crash.
Hey, Guys, we're also having this issue, below is the full stack trace. It only seems to affect low-end devices, but we're getting a quite high amount of crashes. It affects Android 4.4.2, 5.1, 5.0, 6.0. Unity version is 2017.1.1p1. And we're not able to reproduce it ourselves in our devices. Caused by java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@19b10935 at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1282) at android.graphics.Canvas.drawBitmap(Canvas.java:1369) at android.graphics.Bitmap.createBitmap(Bitmap.java:740) at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:596) at com.unity3d.player.h.onLayout(Unknown Source) at android.view.View.layout(View.java:16001) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639) at android.widget.FrameLayout.onLayout(FrameLayout.java:574) at android.view.View.layout(View.java:16001) at android.view.ViewGroup.layout(ViewGroup.java:5181) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639) at android.widget.FrameLayout.onLayout(FrameLayout.java:574) at android.view.View.layout(View.java:16001) at android.view.ViewGroup.layout(ViewGroup.java:5181) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1959) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1813) at android.widget.LinearLayout.onLayout(LinearLayout.java:1722) at android.view.View.layout(View.java:16001) at android.view.ViewGroup.layout(ViewGroup.java:5181) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639) at android.widget.FrameLayout.onLayout(FrameLayout.java:574) at android.view.View.layout(View.java:16001) at android.view.ViewGroup.layout(ViewGroup.java:5181) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2483) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2180) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1292) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6598) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:800) at android.view.Choreographer.doCallbacks(Choreographer.java:603) at android.view.Choreographer.doFrame(Choreographer.java:572) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786) at android.os.Handler.handleCallback(Handler.java:815) at android.os.Handler.dispatchMessage(Handler.java:104) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5637) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
I've tried to reproduce this issue today (see my comment in this thread https://forum.unity.com/threads/5-6...-device-on-android-6-0-1.466367/#post-3243960 ) but just like for you, the crash did not happen for me. There must be some additional steps involved in reproducing this issue, since just launching the app does not seem to be enough. Could you try asking affected users what exactly they do before the crash happens?
I have the Same Issue. Around 5% of downloads has this problem using random devices.. Im afraid that google penalizes our game because of this constant issue. I have a few Negatives reviews saying that crash on start up, and others that says freeze when they go back to the main screen of the game. "It's fun and my boy likes it, but it freezes every time he clicks the home button to switch to a different game. I have to close it out and reopen the app every time." I'm using the latest version of Unity 2017.1.1.f1 LGE LG K8 (2017) Dual (lv3), 1536MB RAM, Android 7.0 java.lang.Error: FATAL EXCEPTION [main] Unity version : 2017.1.1f1 Device model : LGE LGMS210 Device fingerprint: MetroPCS/lv3_mpcs_us/lv3:7.0/NRD90U/170970909e61f:user/release-keys Caused by at android.graphics.Canvas.throwIfCannotDraw (Canvas.java:1282) at android.graphics.Canvas.drawBitmap (Canvas.java:1383) at android.graphics.Bitmap.createBitmap (Bitmap.java:807) Samsung Galaxy Tab A 8.0 (gt58wifi), 1536MB RAM, Android 6.0 Samsung Galaxy J3(2016) (j3xlte), 1536MB RAM, Android 5.1 TCT (Alcatel) Alcatel_5056O (Pop355), 1024MB RAM, Android 5.1 etc. etc.
We also are experiencing this issue based on Analytics. It is not showing up in our Crittercism crash reports but it does show as a large spike in Google Play Console. We have not been able to reproduce ourselves. This is also our first release with Unity 5.6.2f1. Example trace: java.lang.Error: FATAL EXCEPTION [main] Unity version : 5.6.2f1 Device model : LENOVO Lenovo TAB 2 A7-30HC Device fingerprint: Lenovo/LenovoTAB2A7-30HC/A7-30HC:4.4.2/KOT49H/A7-30HC_S0027_150623_ROW_MY:user/release-keys Caused by at android.graphics.Canvas.throwIfCannotDraw (Canvas.java:1084) at android.graphics.Canvas.drawBitmap (Canvas.java:1170) at android.graphics.Bitmap.createBitmap (Bitmap.java:745) at android.graphics.Bitmap.createScaledBitmap (Bitmap.java:602) at com.unity3d.player.i.onLayout (Unknown Source) at android.view.View.layout (View.java:15125) at android.widget.FrameLayout.layoutChildren (FrameLayout.java:515) at android.widget.FrameLayout.onLayout (FrameLayout.java:450) at android.view.View.layout (View.java:15125) at android.view.ViewGroup.layout (ViewGroup.java:4862) at android.widget.FrameLayout.layoutChildren (FrameLayout.java:515) at android.widget.FrameLayout.onLayout (FrameLayout.java:450) at android.view.View.layout (View.java:15125) at android.view.ViewGroup.layout (ViewGroup.java:4862) at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1888) at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1742) at android.widget.LinearLayout.onLayout (LinearLayout.java:1651) at android.view.View.layout (View.java:15125) at android.view.ViewGroup.layout (ViewGroup.java:4862) at android.widget.FrameLayout.layoutChildren (FrameLayout.java:515) at android.widget.FrameLayout.onLayout (FrameLayout.java:450) at android.view.View.layout (View.java:15125) at android.view.ViewGroup.layout (ViewGroup.java:4862) at android.view.ViewRootImpl.performLayout (ViewRootImpl.java:2323) at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2029) at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1192) at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:6231) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:788) at android.view.Choreographer.doCallbacks (Choreographer.java:591) at android.view.Choreographer.doFrame (Choreographer.java:560) at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:774) at android.os.Handler.handleCallback (Handler.java:808) at android.os.Handler.dispatchMessage (Handler.java:103) at android.os.Looper.loop (Looper.java:193) at android.app.ActivityThread.main (ActivityThread.java:5292) at java.lang.reflect.Method.invokeNative (Native Method) at java.lang.reflect.Method.invoke (Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:824) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:640) at dalvik.system.NativeStart.main (Native Method) By Android version Android 4.4 629 48.8% Android 6.0 538 41.7% Android 5.1 58 4.5% Android 5.0 58 4.5% Android 7.1 5 0.4% Android 7.0 2 0.2% By Device Galaxy Tab A 9.7 (gt510wifi) 161 12.5% Galaxy Tab3V 7.0 (goyave3gsea) 149 11.6% Galaxy Tab3 Lite 7.0 (goyavewifi) 101 7.8% Galaxy Tab A 8.0 (gt58wifi) 100 7.8% TAB 2 A7-30HC (A7-30HC) 84 6.5% Galaxy Tab A 8.0 (gt5note8lte) 82 6.4% Galaxy Tab A 9.7 (gt510lte) 64 5.0% MediaPad (hwt1701) 60 4.7% Galaxy Tab3 7.0 (lt02wifi) 39 3.0% Galaxy Tab A 8.0 (gt58lte) 32 2.5% Galaxy Tab3V 7.0 (goyavewifixtc) 28 2.2% Galaxy Tab3 7.0 (lt023g) 27 2.1% Galaxy Tab A 9.7 (gt5note10wifi) 24 1.9% Galaxy Tab3 7.0 (lt02ltespr) 18 1.4% TB3-710F (TB3-710F) 17 1.3% TB3-710I (TB3-710I) 15 1.2% E8QL 13 1.0% 9003X (Pixi4-7_3G) 12 0.9% Galaxy Tab A 8.0 (gt58ltetmo) 10 0.8% Galaxy Tab3 VE 7.0 (goyave3g) 10 0.8% Others 244 18.9%
Guys, everyone with this issue is using the old Static Splash Screen system? We're suspecting that this might be the issue.
Yes. Using Static Splash Screen. I am using Unity2017.2.0f3. Uploaded our game to Google Play days ago, but the same crashes occurred. I am using Google 9 patch PNG splash file. Any idea?
Ok. I see the Unity has release the patches. (971571) - Android: Fixed a rare static splash screen crash. This patch is for 2017.1.0. I have upgraded unity3d to 2017.2.1f1(94bf3f9e6b5e) And sometimes still get the crush. Any suggestion? java.lang.Error: FATAL EXCEPTION [main] Unity version : 2017.2.1f1 Device model : Xiaomi Redmi 5A Device fingerprint: Xiaomi/riva/riva:7.1.2/N2G47H/7.11.23:user/release-keys Caused by: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@cb7d2c7 at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1271) at android.graphics.Canvas.drawBitmap(Canvas.java:1368) at android.graphics.Bitmap.createBitmap(Bitmap.java:818) at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:674) at com.unity3d.player.j.onLayout(Unknown Source) at android.view.View.layout(View.java:17663) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:17663) at android.view.ViewGroup.layout(ViewGroup.java:5577) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:17663) at android.view.ViewGroup.layout(ViewGroup.java:5577) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585) at android.widget.LinearLayout.onLayout(LinearLayout.java:1494) at android.view.View.layout(View.java:17663) at android.view.ViewGroup.layout(ViewGroup.java:5577) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at com.android.internal.policy.DecorView.onLayout(DecorView.java:730) at android.view.View.layout(View.java:17663) at android.view.ViewGroup.layout(ViewGroup.java:5577) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2387) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2109) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1295) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6400) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:876) at android.view.Choreographer.doCallbacks(Choreographer.java:688) at android.view.Choreographer.doFrame(Choreographer.java:623) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:862) at android.os.Handler.handleCallback(Handler.java:754) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6221) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
I have fixed this by stop using static splash image. I have uploaded it for over a week. It seems ok now. FYI.
We also have the issue on the google play store, but cannot reproduce in our own device installed using apk.
If you are using Unity 2017, the fix is available starting with these versions: 2017.3.0f2, 2017.2.1p1 and 2017.1.2p4. The fix will also be in Unity 5.6.5p1, which should be available next week.
JuliusM, are you able to confirm if this fix has made it into 5.6 yet? I've looked at the release notes for 5.6.5p1 and subsequent updates to 5.6 but can't see the fix noted in the release notes. I looked at the release notes for the 2017 updates you mentioned and I can see the fix is explicitly noted. (971571) - Android: Fixed a rare static splash screen crash.) Would be helpful to know, I want to update to a fixed version and preferably stick to 5.6.x. I'm getting an overwhelming amount of crash reports for this issue on the current version of 5.6 I'm using (5.6.4p3)
Hi, yes. Please see my post in a different thread which explains why it is not mentioned in 5.6 release notes. https://forum.unity.com/threads/5-6...e-on-android-6-0-1.466367/page-2#post-3414512
Thanks for the clarification and explanation JuliusM. I'm going to update to the latest 5.6 release and roll out an update. Hopefully this will resolve the issue!