Play Console Pre Launch Report crash with a virtual device

Got this crash error with one of the devices in Play Console’s pre launch report:

FATAL EXCEPTION: UnityMain
Process: com.defaultcompany.test01.android, PID: 7377
java.lang.Error: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Version '2021.3.2f1 (d6360bedb9a0)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'armeabi-v7a'
Build fingerprint: 'generic/gce_x86_phone/gce_x86:9/PGR1.190916.001/5877764:userdebug/test-keys'
Revision: '0'
ABI: 'arm'
Timestamp: 2022-06-09 22:21:10-0700
pid: 7377, tid: 8425, name: UnityMain >>> com.defaultcompany.test01.android <<<
uid: 10093
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x0
r0 00000001 r1 c4e0c600 r2 00003435 r3 00000024
r4 00000000 r5 00000001 r6 00000001 r7 ba23e060
r8 00000002 r9 ba242fbc r10 00000000 r11 ba23db2c
ip e42d72d0 sp bd5403e0 lr bf638fcc pc 00000000

Steps to repro:

  1. Create a new empty Unity project.
  2. Make sure only ARMv7 and ARM64 are selected under Target Architecture in Project Settings.
  3. Build APK.
  4. Upload and release APK to Internal Testing in Google Play Console.
  5. Wait the Pre Launch report to complete.

Alternative method to repro (This method is faster in term of waiting time):

  1. Do until step3 according to the steps above.
  2. Goto Firebase Console.
  3. Create a new project.
  4. Add new app in Project Settings.
  5. Click Test Lab (left menu), then click “Run a Test”.
  6. Select “Robo” as test type.
  7. Upload the APK file.
  8. Select Pixel 2 (Virtual) as the target device.
  9. Wait for the test to complete.

Tested with Unity 2021.3.2f1, 2021.3.4f1 and 2018.4.23f1. All Unity 2021 APK build crash with that device, while Unity 2018 works fine. Looking at the provided long logs from Google Play Console Pre Launch report, found something interesting:

06-09 02:10:10.772: E/ndk_translation(7363): eglGetProcAddress("eglGetNextFrameIdANDROID") failed
06-09 02:10:10.773: E/ndk_translation(7363): eglGetProcAddress("eglGetFrameTimestampsANDROID") failed
06-09 02:10:10.773: E/ndk_translation(7363): eglGetProcAddress("eglGetFrameTimestampSupportedANDROID") failed

It looks like the newer NDK messes up the ARM->x86 translation in that virtual device.

2 Likes

I have the same issue on version 2020.3.33f1. I have had the error consistently on pre-launch tests since June 8. I have a hunch that the error is in the virtual machine or that the virtual machine changed its behavior.

Update: Error is gone. Did nothing different from my part. Probably some issue at virtual machine.

1 Like

Yea the error is gone from my end too. The test device seems to be switched from Pixel 2 to Pixel 3, and it’s working now.

Btw, i was trying to get it work before this, and enabling x86 and x86_64 seems to work well. I think that virtual device has some issues with ARM → x86 translation

I’m also facing the same issue and looks like Pixel 2 is being used in my case. Anybody else in this situation?
Unity version: 2020.3.26f1

1 Like

same here
Unity version: 2020.3.26f1

I’ve tried with a new aab buiilt including the x86 & x86-64 Chrome OS architectures. Fortunately, the previous errors have gone but I’m still not able to pass the report (Pixel 2 (virtual)):

- ANR in com.google.android.as;PID: 1433;executing service com.google.android.as/com.google.android.apps.miphone.aiai.app.AiAiSmartspaceService;```

Which looks like it has something to do with:
**```When the UI thread of an Android app is blocked for too long, an "Application Not Responding" (ANR) error is triggered```**

The funny thing is that using Firebase's Test Lab (Robo test with Pixel 2 (virtual)) it completes successfully.

Same issue with Unity 2021.3.3f1.
Only get the error for the Pixel 2 virtual via the google play console. Can’t seem to resolve the stacktrace with the projects generated symbols linked in logcat either.

UPDATE: Thanks @kkl888 ticking 86 and 86-64 fixed it for chrome os worked for me!

Same here with 2021.3.6,
Only on Pixel 2 as well, and found in the logs that Unity can’t detect any cores.

07-15 04:42:01.316: I/Unity(7720): SystemInfo ARM big.LITTLE configuration: 0 big (mask: 0x0), 0 little (mask: 0x0)
07-15 04:42:01.320: I/Unity(7720): ApplicationInfo com.default.wild version 1.35.4
07-15 04:42:01.325: I/Unity(7720): Built from '2021.3/staging' branch, Version '2021.3.6f1 (7da38d85baf6)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'armeabi-v7a', Stripping 'Enabled'```

Same issue with Unity 2021.3.5f1. I noticed that the new device was added to test devices: Google Pixel 2 (virtual). All last my builds were tested without it device and didn’t have the issue. I can’t figure out what the ‘virtual’ word means in ‘Google Pixel 2 (virtual)’ and what is the reason the virtual device was added into test device set.

I’m getting the same issue on 2021.3.6f1

I just ran into this as well. Is this actually a false positive (non-issue?).

We don’t want to add x86 to our build because it was never meant to support x86.
Can we safely just ignore this?

My app updates on Google Play are getting rejected because of the Google Pixel 2 (virtual) failing the pre-launch test. Enabling the x86 architectures isn’t an option for me as it puts it over the aab size limit, and we shouldn’t need them anyway as it’s just a workaround for the virtual Pixel 2 failing!

Any other solutions would be great!

Same here.
Encoutered it for the first time today, after building the game in Unity 2020.3.37 with target API 31
Looked into previous reports - there wasn’t virtual devices there before, but today there is Pixel 2 (virtual), and it gives the same crash. I have no idea what to do with it (i don’t want to add unused platform), i will just try to rebuild it and upload again, in case this virtual device won’t be there next time…
Update: no luck. There was that vrtual Pixel 2 again.

I just ignored this and have rollouted the application. No error / crashes on my audience.

2 Likes

Same here, Unity 2020.6.3. Unfortunately it’s looks like it won’t go any further with this crash, so we can’t rollout the update.

How do you know that? Promotion to production is not blocked in my case.
8309193--1090131--upload_2022-7-25_15-11-14.png

I accidently had a production track waiting which wouldn’t let me promote my open releases to production, once i discarded by production track i could promote my open release again.

Same issue with Unity 2021.3.6f1. It’s a real pain as I’m only in closed testing stages at the moment but this failed test is keeping my updates stuck “In Review”, and therefore not getting out to testers.

Going to try enabling x86 and x86_64 but it’s not something I actually need to support, so doesn’t feel like a great solution.

I asked to developer on SNS, they said update was released even if ignore crash by virtual device.
I think that is not all, but it’s helpful.

We are also getting this prelaunch report on GCE x86 phone after migrating to unity 2020.3.41f. None of our games in unity 2019 getting this report.