[Solved: Unfixable BUG] Random crashes within OverlapBox on android.

I’m experiencing random crashes on Android which seem to originate from OverlapBox call.
For example:

I/DEBUG   (  106):     r0 5fae850c  r1 6e3e0610  r2 00000000  r3 65f9d260
I/DEBUG   (  106):     r4 5fae8ffc  r5 5fae8fe8  r6 6e3e0610  r7 65f9d260
I/DEBUG   (  106):     r8 682939d8  r9 5fae8594  sl 00000000  fp 00000000
I/DEBUG   (  106):     ip 5e902c14  sp 5fae84f8  lr 5e902c4c  pc 00000000  cpsr 28000010
I/DEBUG   (  106):     d0  404ccccc3c8a7d38  d1  3ea8fa603fa020e4
I/DEBUG   (  106):     d2  bf7f561236734b39  d3  3ec307c0337f5612
I/DEBUG   (  106):     d4  3f8a25183f8a2518  d5  fe7ffffffe7fffff
I/DEBUG   (  106):     d6  c092a999c092a999  d7  fe7ffffffe7fffff
I/DEBUG   (  106):     d8  00000000bf800000  d9  0000000000000000
I/DEBUG   (  106):     d10 0000000000000000  d11 0000000000000000
I/DEBUG   (  106):     d12 0000000000000000  d13 0000000000000000
I/DEBUG   (  106):     d14 0000000000000000  d15 0000000000000000
I/DEBUG   (  106):     d16 0000000000000000  d17 0000000000000000
I/DEBUG   (  106):     d18 358e37bd3f7f5626  d19 000000003d936226
I/DEBUG   (  106):     d20 337ffffbbf7f5615  d21 000000003d9361a0
I/DEBUG   (  106):     d22 3f800000337f5612  d23 00000000b1936108
I/DEBUG   (  106):     d24 0000000000000000  d25 0000000000000000
I/DEBUG   (  106):     d26 3f8a2516408df1ab  d27 00000000c00d5cf8
I/DEBUG   (  106):     d28 a99800003d9361a0  d29 000000003f7f5615
I/DEBUG   (  106):     d30 c04ff7d8bdbb7732  d31 80000000bfa26213
I/DEBUG   (  106):     scr 8000009b
I/DEBUG   (  106): 
I/DEBUG   (  106): backtrace:
I/DEBUG   (  106):     #00  pc 00000000  <unknown>
I/DEBUG   (  106):     #01  pc 002aec48  /mnt/asec/<redacted>/lib/libunity.so (CastFilter::preFilter(physx::PxFilterData const&, physx::PxShape const*, physx::PxRigidActor const*, physx::PxFlags<physx::PxHitFlag::Enum, unsigned short>&)+52)
I/DEBUG   (  106):     #02  pc 00b31c28  /mnt/asec/<redacted>/lib/libunity.so (MultiQueryCallback<physx::PxOverlapHit>::invoke(float&, physx::Sq::PrunerPayload const*, unsigned int)+940)
I/DEBUG   (  106):     #03  pc 00c8dd24  /mnt/asec/<redacted>/lib/libunity.so (_ZN28BucketPrunerOverlapTraversalI16OBBAABBTest_SIMDLb0EEclERKN5physx2Sq16BucketPrunerCoreERKS0_RNS3_14PrunerCallbackERKNS2_9PxBounds3E.part.26+2260)
I/DEBUG   (  106):     #04  pc 00c934e8  /mnt/asec/<redacted>/lib/libunity.so (physx::Sq::BucketPrunerCore::overlap(physx::Sq::ShapeData const&, physx::Sq::PrunerCallback&) const+2844)
I/DEBUG   (  106):     #05  pc 00c86244  /mnt/asec/<redacted>/lib/libunity.so (physx::Sq::AABBPruner::overlap(physx::Sq::ShapeData const&, physx::Sq::PrunerCallback&) const+228)
I/DEBUG   (  106):     #06  pc 00b3372c  /mnt/asec/<redacted>/lib/libunity.so (bool physx::NpSceneQueries::multiQuery<physx::PxOverlapHit>(physx::MultiQueryInput const&, physx::PxHitCallback<physx::PxOverlapHit>&, physx::PxFlags<physx::PxHitFlag::Enum, unsigned short>, physx::PxQueryCache const*, physx::PxQueryFilterData const&, physx::PxQueryFilterCallback*, physx::BatchQueryFilterData*) const+1728)
I/DEBUG   (  106):     #07  pc 00b338fc  /mnt/asec/<redacted>/lib/libunity.so (physx::NpSceneQueries::overlap(physx::PxGeometry const&, physx::PxTransform const&, physx::PxHitCallback<physx::PxOverlapHit>&, physx::PxQueryFilterData const&, physx::PxQueryFilterCallback*) const+144)
I/DEBUG   (  106):     #08  pc 002959b8  /mnt/asec/<redacted>/lib/libunity.so (Unity::PhysicsQuery::OverlapBoxInternal(Vector3f const&, Vector3f const&, Quaternionf const&, int, QueryTriggerInteraction, physx::PxHitCallback<physx::PxOverlapHit>&)+260)
I/DEBUG   (  106):     #09  pc 00287f28  /mnt/asec/<redacted>/lib/libunity.so (PhysicsManager::OverlapBox(Vector3f const&, Vector3f const&, Quaternionf const&, int, QueryTriggerInteraction)+156)
I/DEBUG   (  106):     #10  pc 005d6e18  /mnt/asec/<redacted>/lib/libunity.so (Physics_CUSTOM_INTERNAL_CALL_OverlapBox(Vector3f const&, Vector3f const&, Quaternionf const&, int, QueryTriggerInteraction)+152)

I’m investigating the issue at the moment, but has anyone else experienced this kind of problem?

The issue is random and cannot be reliably reproduced.

Unity version 5.3.3f1

Alright. Despite my attempts to eliminate every possible cause of the issue, and implementing object pooling, the problem refuses to disappear. After multiple calls to physics.OverlapBox, application eventually gets killed by SIGSEGV, SEGV_MAPERR, with stacktrace within libunity.so which originates from one of OverlapBox call. No matter what I do, how I do, it just unavoidably dies.

So I’ll assume it is a unity bug that only manifests itself on android.

The only remaining workaround for this is replacing physx overlapbox collision queries.with custom collision system.

(sarcasm)Yay(/sarcasm).

I’m already made a game for Android/IPhone and WPhone. Android was the most convenient, WPhone was painful.

  1. At first, connect with adb and put that output inside this forum. (The last lines, not all the dump :slight_smile: )
  2. The biggest problem was the memory allocation, Android with 500MB RAM just allow allocating max 180MB. If you are on the limit, crashes happens.
  3. Custom ROMs are not supported, however this was never a problem for my custom ROMs.

#00 pc 00000000

Seems to be a null pointer access, could be caused by not getting more RAM from the OS.

What specifically are you looking for? Because I have dozen of crashlogs 1 Mb each with loads debug data printed in them. There’s no discernable event before the crash, except that ALL the crashes happen within “overlap box”.

D/dalvikvm( 9926): GC_CONCURRENT freed 1333K, 37% free 5843K/9196K, paused 1ms+18ms, total 58ms
D/dalvikvm( 9926): GC_CONCURRENT freed 313K, 35% free 6011K/9196K, paused 5ms+2ms, total 45ms
E/dalvikvm( 9926): adjustAdaptiveCoef max=4194304, min=1048576, ut=568
D/dalvikvm( 9926): GC_CONCURRENT freed 306K, 33% free 6216K/9196K, paused 7ms+34ms, total 107ms
D/dalvikvm( 9926): WAIT_FOR_CONCURRENT_GC blocked 3ms
D/dalvikvm(19181): GC_CONCURRENT freed 457K, 28% free 6712K/9220K, paused 33ms+2ms, total 180ms
D/dalvikvm(24013): GC_CONCURRENT freed 512K, 29% free 7215K/10036K, paused 45ms+13ms, total 421ms
D/dalvikvm(24013): GC_CONCURRENT freed 435K, 28% free 7254K/10036K, paused 7ms+6ms, total 108ms
D/dalvikvm(24013): GC_CONCURRENT freed 458K, 28% free 7313K/10036K, paused 10ms+3ms, total 100ms
D/dalvikvm(24013): GC_CONCURRENT freed 547K, 28% free 7278K/10036K, paused 12ms+48ms, total 130ms
I/ActivityManager(  499): Process com.sec.android.daemonapp (pid 9708) (adj 13) has died.
I/ActivityManager(  499): Process com.droid27.senseflipclockweather (pid 9858) (adj 11) has died.
I/ActivityManager(  499): Process com.android.providers.calendar (pid 9250) (adj 13) has died.
D/dalvikvm(24013): GC_CONCURRENT freed 495K, 27% free 7370K/10036K, paused 9ms+19ms, total 132ms
D/dalvikvm(24013): GC_CONCURRENT freed 561K, 27% free 7380K/10036K, paused 8ms+12ms, total 137ms
I/ActivityManager(  499): Process com.sec.spp.push:RemoteDlcProcess (pid 9899) (adj 13) has died.
I/ActivityManager(  499): Process com.bellshare.beweatherfree (pid 9838) (adj 11) has died.
I/ActivityManager(  499): Process android.process.media (pid 9942) (adj 11) has died.
D/dalvikvm(24013): GC_CONCURRENT freed 621K, 28% free 7296K/10036K, paused 22ms+11ms, total 97ms
D/dalvikvm( 2996): GC_CONCURRENT freed 2108K, 32% free 19796K/28968K, paused 6ms+8ms, total 146ms
D/dalvikvm(  905): GC_CONCURRENT freed 277K, 33% free 6095K/9048K, paused 4ms+10ms, total 200ms
D/dalvikvm( 1361): GC_CONCURRENT freed 1482K, 36% free 10124K/15796K, paused 18ms+9ms, total 159ms
D/dalvikvm(19181): GC_CONCURRENT freed 413K, 28% free 6715K/9240K, paused 5ms+2ms, total 45ms
D/dalvikvm(  499): GC_EXPLICIT freed 1264K, 21% free 29444K/36928K, paused 10ms+38ms, total 395ms
D/dalvikvm(10165): Late-enabling CheckJNI
D/dalvikvm(10165): GC_CONCURRENT freed 671K, 32% free 5759K/8452K, paused 6ms+9ms, total 48ms
D/dalvikvm(10184): Late-enabling CheckJNI
I/dalvikvm(10184): Turning on JNI app bug workarounds for target SDK version 12...
I/dalvikvm(10184): Could not find method android.view.Display.getState, referenced from method com.droid27.senseflipclockweather.e.a
W/dalvikvm(10184): VFY: unable to resolve virtual method 14397: Landroid/view/Display;.getState ()I
D/dalvikvm(10184): VFY: replacing opcode 0x6e at 0x001a
I/dalvikvm(10184): Could not find method android.app.AlarmManager.setExactAndAllowWhileIdle, referenced from method com.droid27.senseflipclockweather.receivers.a.a
W/dalvikvm(10184): VFY: unable to resolve virtual method 144: Landroid/app/AlarmManager;.setExactAndAllowWhileIdle (IJLandroid/app/PendingIntent;)V
D/dalvikvm(10184): VFY: replacing opcode 0x6e at 0x0081
D/dalvikvm(10184): GC_CONCURRENT freed 671K, 32% free 5799K/8492K, paused 7ms+3ms, total 80ms
I/dalvikvm(10184): Could not find method android.app.Notification$Builder.setLocalOnly, referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zza
W/dalvikvm(10184): VFY: unable to resolve virtual method 291: Landroid/app/Notification$Builder;.setLocalOnly (Z)Landroid/app/Notification$Builder;
D/dalvikvm(10184): VFY: replacing opcode 0x6e at 0x00c8
I/dalvikvm(10184): DexOpt: access denied from Lcom/google/android/gms/common/GooglePlayServicesUtil; to field Landroid/app/Notification;.extras
W/dalvikvm(10184): VFY: unable to resolve instance field 34
D/dalvikvm(10184): VFY: replacing opcode 0x54 at 0x00e7
I/dalvikvm(10184): Could not find method android.os.UserManager.getApplicationRestrictions, referenced from method com.google.android.gms.common.zze.zzaq
W/dalvikvm(10184): VFY: unable to resolve virtual method 1657: Landroid/os/UserManager;.getApplicationRestrictions (Ljava/lang/String;)Landroid/os/Bundle;
D/dalvikvm(10184): VFY: replacing opcode 0x6e at 0x0012
E/dalvikvm(10184): Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.zze.zzb
W/dalvikvm(10184): VFY: unable to resolve check-cast 32 (Landroid/app/AppOpsManager;) in Lcom/google/android/gms/common/zze;
D/dalvikvm(10184): VFY: replacing opcode 0x1f at 0x000e
I/dalvikvm(10184): Could not find method android.content.pm.PackageManager.getPackageInstaller, referenced from method com.google.android.gms.common.zze.zzi
W/dalvikvm(10184): VFY: unable to resolve virtual method 607: Landroid/content/pm/PackageManager;.getPackageInstaller ()Landroid/content/pm/PackageInstaller;
D/dalvikvm(10184): VFY: replacing opcode 0x6e at 0x000b
I/dalvikvm(10184): Could not find method android.app.AlarmManager.getNextAlarmClock, referenced from method com.droid27.senseflipclockweather.d.a
W/dalvikvm(10184): VFY: unable to resolve virtual method 143: Landroid/app/AlarmManager;.getNextAlarmClock ()Landroid/app/AlarmManager$AlarmClockInfo;
D/dalvikvm(10184): VFY: replacing opcode 0x6e at 0x0719
D/dalvikvm(10184): GC_CONCURRENT freed 453K, 33% free 5746K/8492K, paused 7ms+11ms, total 66ms
D/dalvikvm(10184): GC_CONCURRENT freed 243K, 31% free 5891K/8492K, paused 3ms+4ms, total 35ms
I/DEBUG   (  109): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (  109): Build fingerprint: 'samsung/espressorfxx/espressorf:4.2.2/JDQ39/P3100XWDMK1:user/release-keys'
I/DEBUG   (  109): Revision: '10'
I/DEBUG   (  109): pid: 7485, tid: 7513, name: UnityMain  >>> <redacted> <<<
I/DEBUG   (  109): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
I/ActivityManager(  499): Process com.sec.android.app.keyguard (pid 9808) (adj 9) has died.
I/ActivityManager(  499): Process com.bellshare.beweatherfree (pid 10165) (adj 11) has died.
I/ActivityManager(  499): Process com.droid27.senseflipclockweather (pid 10184) (adj 13) has died.
I/DEBUG   (  109):     r0 5fb49c68  r1 6608bc20  r2 5f1c36d0  r3 00000000
I/DEBUG   (  109):     r4 5fb4a6e4  r5 5fb4a6d0  r6 6608bc20  r7 670fd670
I/DEBUG   (  109):     r8 65115788  r9 5fb49c7c  sl 00000000  fp 00000000
I/DEBUG   (  109):     ip 5e952c74  sp 5fb49bd8  lr 5f1c36e4  pc 00000000  cpsr 28000010
I/DEBUG   (  109):     d0  3f80000936393df6  d1  00000000358637c4
I/DEBUG   (  109):     d2  bf8e06c2bf8e06c2  d3  3c257e00f5454086
I/DEBUG   (  109):     d4  bf9d9163bf9d9163  d5  fe7ffffffe7fffff
I/DEBUG   (  109):     d6  bf8e06c2bf8e06c2  d7  fe7ffffffe7fffff
I/DEBUG   (  109):     d8  00000000bf800000  d9  0000000000000000
I/DEBUG   (  109):     d10 0000000000000000  d11 0000000000000000
I/DEBUG   (  109):     d12 0000000000000000  d13 0000000000000000
I/DEBUG   (  109):     d14 0000000000000000  d15 0000000000000000
I/DEBUG   (  109):     d16 0000000000000000  d17 0000000000000000
I/DEBUG   (  109):     d18 36393df63f800008  d19 0000000035c637c4
I/DEBUG   (  109):     d20 35ec442ebf800000  d21 00000000b500000e
I/DEBUG   (  109):     d22 bf800001b5ec442e  d23 00000000ab500000
I/DEBUG   (  109):     d24 0000000000000000  d25 0000000000000000
I/DEBUG   (  109):     d26 3f9d91543f8e06cb  d27 80000000403faebc
I/DEBUG   (  109):     d28 2980000034c00000  d29 00000000bf800000
I/DEBUG   (  109):     d30 754540a16c54eec8  d31 800000007545409f
I/DEBUG   (  109):     scr 8000009f
I/DEBUG   (  109): 
I/DEBUG   (  109): backtrace:
I/DEBUG   (  109):     #00  pc 00000000  <unknown>
I/DEBUG   (  109):     #01  pc 00b216e0  /mnt/asec/<redacted>-1/lib/libunity.so (physx::Ext::Joint<physx::PxD6Joint, physx::PxD6JointGeneratedValues>::getBreakForce(float&, float&) const+16)
I/DEBUG   (  109):     #02  pc 002b0ca8  /mnt/asec/<redacted>-1/lib/libunity.so (CastFilter::preFilter(physx::PxFilterData const&, physx::PxShape const*, physx::PxRigidActor const*, physx::PxFlags<physx::PxHitFlag::Enum, unsigned short>&)+52)
I/DEBUG   (  109):     #03  pc 00b44a98  /mnt/asec/<redacted>-1/lib/libunity.so (MultiQueryCallback<physx::PxOverlapHit>::invoke(float&, physx::Sq::PrunerPayload const*, unsigned int)+940)
I/DEBUG   (  109):     #04  pc 00ca0b8c  /mnt/asec/<redacted>-1/lib/libunity.so (_ZN28BucketPrunerOverlapTraversalI16OBBAABBTest_SIMDLb0EEclERKN5physx2Sq16BucketPrunerCoreERKS0_RNS3_14PrunerCallbackERKNS2_9PxBounds3E.part.26+2260)
I/DEBUG   (  109):     #05  pc 00ca6350  /mnt/asec/<redacted>-1/lib/libunity.so (physx::Sq::BucketPrunerCore::overlap(physx::Sq::ShapeData const&, physx::Sq::PrunerCallback&) const+2844)
I/DEBUG   (  109):     #06  pc 00c990ac  /mnt/asec/<redacted>-1/lib/libunity.so (physx::Sq::AABBPruner::overlap(physx::Sq::ShapeData const&, physx::Sq::PrunerCallback&) const+228)
I/DEBUG   (  109):     #07  pc 00b4659c  /mnt/asec/<redacted>-1/lib/libunity.so (bool physx::NpSceneQueries::multiQuery<physx::PxOverlapHit>(physx::MultiQueryInput const&, physx::PxHitCallback<physx::PxOverlapHit>&, physx::PxFlags<physx::PxHitFlag::Enum, unsigned short>, physx::PxQueryCache const*, physx::PxQueryFilterData const&, physx::PxQueryFilterCallback*, physx::BatchQueryFilterData*) const+1728)
I/DEBUG   (  109):     #08  pc 00b4676c  /mnt/asec/<redacted>-1/lib/libunity.so (physx::NpSceneQueries::overlap(physx::PxGeometry const&, physx::PxTransform const&, physx::PxHitCallback<physx::PxOverlapHit>&, physx::PxQueryFilterData const&, physx::PxQueryFilterCallback*) const+144)
I/DEBUG   (  109):     #09  pc 00297a18  /mnt/asec/<redacted>-1/lib/libunity.so (Unity::PhysicsQuery::OverlapBoxInternal(Vector3f const&, Vector3f const&, Quaternionf const&, int, QueryTriggerInteraction, physx::PxHitCallback<physx::PxOverlapHit>&)+260)
I/DEBUG   (  109):     #10  pc 00289e60  /mnt/asec/<redacted>-1/lib/libunity.so (PhysicsManager::OverlapBoxNonAlloc(Vector3f const&, Vector3f const&, Quaternionf const&, Collider**, int, int, QueryTriggerInteraction)+160)
I/DEBUG   (  109):     #11  pc 005e3c18  /mnt/asec/<redacted>-1/lib/libunity.so (Physics_CUSTOM_INTERNAL_CALL_OverlapBoxNonAlloc(Vector3f const&, Vector3f const&, MonoArray*, Quaternionf const&, int, QueryTriggerInteraction)+204)
I/DEBUG   (  109):     #12  pc 0000caec  <unknown>
I/DEBUG   (  109): 
I/DEBUG   (  109): stack:
I/DEBUG   (  109):          5fb49b98  00000000  
I/DEBUG   (  109):          5fb49b9c  00000000  
I/DEBUG   (  109):          5fb49ba0  00000000  
I/DEBUG   (  109):          5fb49ba4  00000000  
I/DEBUG   (  109):          5fb49ba8  00000000  
I/DEBUG   (  109):          5fb49bac  00000000  
I/DEBUG   (  109):          5fb49bb0  00000000  
I/DEBUG   (  109):          5fb49bb4  00000000  
I/DEBUG   (  109):          5fb49bb8  00000000  
I/DEBUG   (  109):          5fb49bbc  00000000  
I/DEBUG   (  109):          5fb49bc0  00000000  
I/DEBUG   (  109):          5fb49bc4  00000000  
I/DEBUG   (  109):          5fb49bc8  00000000  
I/DEBUG   (  109):          5fb49bcc  00000000  
I/DEBUG   (  109):          5fb49bd0  df0027ad  
I/DEBUG   (  109):          5fb49bd4  00000000  
I/DEBUG   (  109):     #00  5fb49bd8  670fd670  
I/DEBUG   (  109):          ........  ........
I/DEBUG   (  109):     #01  5fb49bd8  670fd670  
I/DEBUG   (  109):          5fb49bdc  5e952cac  /mnt/asec/<redacted>-1/lib/libunity.so (CastFilter::preFilter(physx::PxFilterData const&, physx::PxShape const*, physx::PxRigidActor const*, physx::PxFlags<physx::PxHitFlag::Enum, unsigned short>&)+56)
I/DEBUG   (  109):     #02  5fb49be0  00000000  
I/DEBUG   (  109):          5fb49be4  00000000  
I/DEBUG   (  109):          5fb49be8  00000000  
I/DEBUG   (  109):          5fb49bec  00000000  
I/DEBUG   (  109):          5fb49bf0  00000000  
I/DEBUG   (  109):          5fb49bf4  00000000  
I/DEBUG   (  109):          5fb49bf8  5fb4a4f8  
I/DEBUG   (  109):          5fb49bfc  00000001  
I/DEBUG   (  109):          5fb49c00  5fb4a6d0  
I/DEBUG   (  109):          5fb49c04  00000007  
I/DEBUG   (  109):          5fb49c08  00000000  
I/DEBUG   (  109):          5fb49c0c  5f1e6a9c  /mnt/asec/<redacted>-1/lib/libunity.so (MultiQueryCallback<physx::PxOverlapHit>::invoke(float&, physx::Sq::PrunerPayload const*, unsigned int)+944)
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near r0:
I/DEBUG   (  109):     5fb49c48 5fb4a6e4 5fb49c7c 00000000 5f77a594  
I/DEBUG   (  109):     5fb49c58 00000000 00000000 ffffffff 00000000  
I/DEBUG   (  109):     5fb49c68 670fd670 6608bc20 6608bc40 670fd6a0  
I/DEBUG   (  109):     5fb49c78 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49c88 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49c98 00000000 3f000000 00000000 70333880  
I/DEBUG   (  109):     5fb49ca8 70333878 5fb49cd4 5fb49d90 65115790  
I/DEBUG   (  109):     5fb49cb8 5fb49cd0 00000000 5fb49d84 5f342b90  
I/DEBUG   (  109):     5fb49cc8 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49cd8 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49ce8 00000002 00000000 60be7960 60be6b90  
I/DEBUG   (  109):     5fb49cf8 60be7190 60be6a90 60be6920 60be6910  
I/DEBUG   (  109):     5fb49d08 00000002 60be68d8 5fb49d58 60be7190  
I/DEBUG   (  109):     5fb49d18 60be6e38 60be6e34 60be6e30 60be7960  
I/DEBUG   (  109):     5fb49d28 60be68d0 60be6a90 00000000 60be6df0  
I/DEBUG   (  109):     5fb49d38 5fb4a4f8 60be7998 60be7988 406cc645  
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near r1:
I/DEBUG   (  109):     6608bc00 6e786e40 00000000 00000010 000000f1  
I/DEBUG   (  109):     6608bc10 656b1ce8 6d851da8 000001a1 00000000  
I/DEBUG   (  109):     6608bc20 5f772970 00010007 6574cac0 5f773a18  
I/DEBUG   (  109):     6608bc30 00000000 00000000 01010000 00000000  
I/DEBUG   (  109):     6608bc40 00000000 01000000 00000000 3f800000  
I/DEBUG   (  109):     6608bc50 00000000 6574cac0 00000000 00000000  
I/DEBUG   (  109):     6608bc60 00000000 6574cac0 00000002 00000000  
I/DEBUG   (  109):     6608bc70 2a7739e9 3f37e36f 28b7fb78 3f321aa4  
I/DEBUG   (  109):     6608bc80 3e717660 3f93ae22 3f004f06 3c23d70a  
I/DEBUG   (  109):     6608bc90 0000000b 00000003 3be4a475 3da82bbd  
I/DEBUG   (  109):     6608bca0 3d49e646 00000000 00000000 3e19999a  
I/DEBUG   (  109):     6608bcb0 00000000 00000000 00000000 f49dc5ae  
I/DEBUG   (  109):     6608bcc0 00000000 00000000 00000000 7f7fffff  
I/DEBUG   (  109):     6608bcd0 00000000 7f7fff01 00000000 3d4ccccd  
I/DEBUG   (  109):     6608bce0 00000000 3f800001 3f800000 43b937f7  
I/DEBUG   (  109):     6608bcf0 3ba3d70a 3a83126e 000000f0 0000003a  
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near r2:
I/DEBUG   (  109):     5f1c36b0 e5802018 e12fff1e e92d4008 e590004c  
I/DEBUG   (  109):     5f1c36c0 e5903000 e5933038 e12fff33 e8bd8008  
I/DEBUG   (  109):     5f1c36d0 e92d4008 e590004c e5903000 e593303c  
I/DEBUG   (  109):     5f1c36e0 e12fff33 e8bd8008 e52de004 e24dd00c  
I/DEBUG   (  109):     5f1c36f0 e590004c e28d3008 e1d110b0 e5902000  
I/DEBUG   (  109):     5f1c3700 e16310b8 e1a0100d e5923028 e12fff33  
I/DEBUG   (  109):     5f1c3710 e28dd00c e49df004 e92d4008 e590004c  
I/DEBUG   (  109):     5f1c3720 e5903000 e5933030 e12fff33 e8bd8008  
I/DEBUG   (  109):     5f1c3730 e92d4010 e1a04000 e591104c e5913000  
I/DEBUG   (  109):     5f1c3740 e593302c e12fff33 e1a00004 e8bd8010  
I/DEBUG   (  109):     5f1c3750 e92d4008 e5903050 e5831038 e590004c  
I/DEBUG   (  109):     5f1c3760 e5903000 e5933024 e12fff33 e8bd8008  
I/DEBUG   (  109):     5f1c3770 e5903050 e5930038 e12fff1e e92d4008  
I/DEBUG   (  109):     5f1c3780 e5903050 e583103c e590004c e5903000  
I/DEBUG   (  109):     5f1c3790 e5933024 e12fff33 e8bd8008 e5903050  
I/DEBUG   (  109):     5f1c37a0 e593003c e12fff1e e92d4008 e5903050  
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near r4:
I/DEBUG   (  109):     5fb4a6c4 3d851ebd 3da3d70f 34bd8000 00000000  
I/DEBUG   (  109):     5fb4a6d4 00000000 00000000 00000000 5f000007  
I/DEBUG   (  109):     5fb4a6e4 5f7590e8 00000001 00000000 00000301  
I/DEBUG   (  109):     5fb4a6f4 5fb4a801 5f77a594 00000000 5fb4a87c  
I/DEBUG   (  109):     5fb4a704 ffffffff 00000301 5e92be64 00000301  
I/DEBUG   (  109):     5fb4a714 00000000 5fb4a720 6d804e40 5f759100  
I/DEBUG   (  109):     5fb4a724 00000000 00000000 ffffffff 5fb4a710  
I/DEBUG   (  109):     5fb4a734 5c2ffd00 6354a5e0 00000080 00000000  
I/DEBUG   (  109):     5fb4a744 6a606ef0 00000040 00000000 6a606ee0  
I/DEBUG   (  109):     5fb4a754 00000000 6a606ef0 63548a00 5fb4a898  
I/DEBUG   (  109):     5fb4a764 5fb4a888 00000301 5ec85c1c 6a606ef0  
I/DEBUG   (  109):     5fb4a774 00000040 00000301 00000000 5fb4a7a4  
I/DEBUG   (  109):     5fb4a784 5e67fc20 5fb4b0b4 5fb4b0b8 5c2f0240  
I/DEBUG   (  109):     5fb4a794 6d8e8520 6a632af0 6193a030 5fb4a7a8  
I/DEBUG   (  109):     5fb4a7a4 6d8fbaf0 00000301 00000000 6d8e8520  
I/DEBUG   (  109):     5fb4a7b4 5fb4a87c 5fb4a888 6a606ee0 5fb4a898  
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near r5:
I/DEBUG   (  109):     5fb4a6b0 352710c8 c03faeba bf9d9163 bf8e06c2  
I/DEBUG   (  109):     5fb4a6c0 00000003 3d851ebd 3da3d70f 34bd8000  
I/DEBUG   (  109):     5fb4a6d0 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb4a6e0 5f000007 5f7590e8 00000001 00000000  
I/DEBUG   (  109):     5fb4a6f0 00000301 5fb4a801 5f77a594 00000000  
I/DEBUG   (  109):     5fb4a700 5fb4a87c ffffffff 00000301 5e92be64  
I/DEBUG   (  109):     5fb4a710 00000301 00000000 5fb4a720 6d804e40  
I/DEBUG   (  109):     5fb4a720 5f759100 00000000 00000000 ffffffff  
I/DEBUG   (  109):     5fb4a730 5fb4a710 5c2ffd00 6354a5e0 00000080  
I/DEBUG   (  109):     5fb4a740 00000000 6a606ef0 00000040 00000000  
I/DEBUG   (  109):     5fb4a750 6a606ee0 00000000 6a606ef0 63548a00  
I/DEBUG   (  109):     5fb4a760 5fb4a898 5fb4a888 00000301 5ec85c1c  
I/DEBUG   (  109):     5fb4a770 6a606ef0 00000040 00000301 00000000  
I/DEBUG   (  109):     5fb4a780 5fb4a7a4 5e67fc20 5fb4b0b4 5fb4b0b8  
I/DEBUG   (  109):     5fb4a790 5c2f0240 6d8e8520 6a632af0 6193a030  
I/DEBUG   (  109):     5fb4a7a0 5fb4a7a8 6d8fbaf0 00000301 00000000  
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near r6:
I/DEBUG   (  109):     6608bc00 6e786e40 00000000 00000010 000000f1  
I/DEBUG   (  109):     6608bc10 656b1ce8 6d851da8 000001a1 00000000  
I/DEBUG   (  109):     6608bc20 5f772970 00010007 6574cac0 5f773a18  
I/DEBUG   (  109):     6608bc30 00000000 00000000 01010000 00000000  
I/DEBUG   (  109):     6608bc40 00000000 01000000 00000000 3f800000  
I/DEBUG   (  109):     6608bc50 00000000 6574cac0 00000000 00000000  
I/DEBUG   (  109):     6608bc60 00000000 6574cac0 00000002 00000000  
I/DEBUG   (  109):     6608bc70 2a7739e9 3f37e36f 28b7fb78 3f321aa4  
I/DEBUG   (  109):     6608bc80 3e717660 3f93ae22 3f004f06 3c23d70a  
I/DEBUG   (  109):     6608bc90 0000000b 00000003 3be4a475 3da82bbd  
I/DEBUG   (  109):     6608bca0 3d49e646 00000000 00000000 3e19999a  
I/DEBUG   (  109):     6608bcb0 00000000 00000000 00000000 f49dc5ae  
I/DEBUG   (  109):     6608bcc0 00000000 00000000 00000000 7f7fffff  
I/DEBUG   (  109):     6608bcd0 00000000 7f7fff01 00000000 3d4ccccd  
I/DEBUG   (  109):     6608bce0 00000000 3f800001 3f800000 43b937f7  
I/DEBUG   (  109):     6608bcf0 3ba3d70a 3a83126e 000000f0 0000003a  
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near r7:
I/DEBUG   (  109):     670fd650 000001b2 0004d8b4 0004d8a8 00000143  
I/DEBUG   (  109):     670fd660 aaaaaaaa 00000008 00000241 00000000  
I/DEBUG   (  109):     670fd670 5f7758e8 00030005 6a539ae0 00000000  
I/DEBUG   (  109):     670fd680 00000000 6608daa0 00010002 67111a80  
I/DEBUG   (  109):     670fd690 00010002 00000011 00000000 00000000  
I/DEBUG   (  109):     670fd6a0 60c32e70 83000000 00000000 00000000  
I/DEBUG   (  109):     670fd6b0 ffffffff 660f79f0 00010001 3f800000  
I/DEBUG   (  109):     670fd6c0 3f800000 00000000 00000000 356c442d  
I/DEBUG   (  109):     670fd6d0 c0400000 35f4442d bf1c0da0 01060001  
I/DEBUG   (  109):     670fd6e0 00000000 00000000 00000000 3f800000  
I/DEBUG   (  109):     670fd6f0 00000000 00000000 00000000 3e19999a  
I/DEBUG   (  109):     670fd700 00000000 00000000 00000000 f49dc5ae  
I/DEBUG   (  109):     670fd710 00000000 00000000 00000000 7f7fffff  
I/DEBUG   (  109):     670fd720 7f7fffff 7f7fffff 00000000 00000000  
I/DEBUG   (  109):     670fd730 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     670fd740 3ba3d70a 3a83126e 00000000 6574c2a0  
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near r8:
I/DEBUG   (  109):     65115768 70584af0 6f1450a0 656b8030 67b8c400  
I/DEBUG   (  109):     65115778 65a0ec50 670f0270 70679050 70650750  
I/DEBUG   (  109):     65115788 6608bc40 670fd6a0 67441a30 65a1e280  
I/DEBUG   (  109):     65115798 6f174f30 702e72f0 60bc16a0 60bb9600  
I/DEBUG   (  109):     651157a8 60bc14c0 60bb9600 70334c80 60bb9600  
I/DEBUG   (  109):     651157b8 706549f0 60bb9600 7064a450 60bb9600  
I/DEBUG   (  109):     651157c8 6571aab0 60bb9600 7067b750 7067b600  
I/DEBUG   (  109):     651157d8 6d851de0 670fd6a0 6e2a44c0 70653f10  
I/DEBUG   (  109):     651157e8 65a0eec0 65757050 65a25ba0 6ef670b0  
I/DEBUG   (  109):     651157f8 66319cf0 70243760 6608a700 670fd6a0  
I/DEBUG   (  109):     65115808 656b1d20 670fd6a0 66e1bb90 670fd6a0  
I/DEBUG   (  109):     65115818 70649880 70652040 7002c790 7002c640  
I/DEBUG   (  109):     65115828 70558e00 70558cd0 6602ad80 70338590  
I/DEBUG   (  109):     65115838 6f175a10 6f1757b0 67db5ae0 6d769e30  
I/DEBUG   (  109):     65115848 705e6ee0 67fc67e0 6ae1df30 656b3bf0  
I/DEBUG   (  109):     65115858 65a1baa0 670f6130 66356a90 6a81add0  
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near r9:
I/DEBUG   (  109):     5fb49c5c 00000000 ffffffff 00000000 670fd670  
I/DEBUG   (  109):     5fb49c6c 6608bc20 6608bc40 670fd6a0 00000000  
I/DEBUG   (  109):     5fb49c7c 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49c8c 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49c9c 3f000000 00000000 70333880 70333878  
I/DEBUG   (  109):     5fb49cac 5fb49cd4 5fb49d90 65115790 5fb49cd0  
I/DEBUG   (  109):     5fb49cbc 00000000 5fb49d84 5f342b90 00000000  
I/DEBUG   (  109):     5fb49ccc 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49cdc 00000000 00000000 00000000 00000002  
I/DEBUG   (  109):     5fb49cec 00000000 60be7960 60be6b90 60be7190  
I/DEBUG   (  109):     5fb49cfc 60be6a90 60be6920 60be6910 00000002  
I/DEBUG   (  109):     5fb49d0c 60be68d8 5fb49d58 60be7190 60be6e38  
I/DEBUG   (  109):     5fb49d1c 60be6e34 60be6e30 60be7960 60be68d0  
I/DEBUG   (  109):     5fb49d2c 60be6a90 00000000 60be6df0 5fb4a4f8  
I/DEBUG   (  109):     5fb49d3c 60be7998 60be7988 406cc645 60be7950  
I/DEBUG   (  109):     5fb49d4c 5fb49cd4 00000000 405816f3 bf800000  
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near ip:
I/DEBUG   (  109):     5e952c54 eaf65c3e e3a00000 e12fff1e eaf65c3b  
I/DEBUG   (  109):     5e952c64 e12fff1e e3a00000 e12fff1e eaf65c37  
I/DEBUG   (  109):     5e952c74 e92d48f0 e24dd018 e1a04000 e1a07003  
I/DEBUG   (  109):     5e952c84 e5940008 e1a06002 e1a05001 e1570000  
I/DEBUG   (  109):     5e952c94 0a000025 e5960000 e1a01006 e5902088  
I/DEBUG   (  109):     5e952ca4 e28d0014 e12fff32 e5dd0014 e3100004  
I/DEBUG   (  109):     5e952cb4 0a000002 e5d40010 e3500000 0a00001a  
I/DEBUG   (  109):     5e952cc4 e5970008 e3500000 0a000002 e5d0005c  
I/DEBUG   (  109):     5e952cd4 e3500000 0a000014 e5960000 e1a01006  
I/DEBUG   (  109):     5e952ce4 e590205c e28d0004 e12fff32 e3a00009  
I/DEBUG   (  109):     5e952cf4 ebf94b38 e5957004 e3a00000 e3a03000  
I/DEBUG   (  109):     5e952d04 e3570000 0a00001f e59d1008 e3a03000  
I/DEBUG   (  109):     5e952d14 e3510000 0a00001b e597202c e5973030  
I/DEBUG   (  109):     5e952d24 e0437002 e1a06147 ea000007 e3a00000  
I/DEBUG   (  109):     5e952d34 e28dd018 e8bd88f0 e2477001 e0822106  
I/DEBUG   (  109):     5e952d44 e0477006 e2822004 e1a06007 e1a07006  
I/DEBUG   (  109): 
I/DEBUG   (  109): memory near sp:
I/DEBUG   (  109):     5fb49bb8 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49bc8 00000000 00000000 df0027ad 00000000  
I/DEBUG   (  109):     5fb49bd8 670fd670 5e952cac 00000000 00000000  
I/DEBUG   (  109):     5fb49be8 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49bf8 5fb4a4f8 00000001 5fb4a6d0 00000007  
I/DEBUG   (  109):     5fb49c08 00000000 5f1e6a9c 5fb49c7c 00000000  
I/DEBUG   (  109):     5fb49c18 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49c28 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49c38 5f9450b0 00000000 5fb49c68 00000001  
I/DEBUG   (  109):     5fb49c48 5fb4a6e4 5fb49c7c 00000000 5f77a594  
I/DEBUG   (  109):     5fb49c58 00000000 00000000 ffffffff 00000000  
I/DEBUG   (  109):     5fb49c68 670fd670 6608bc20 6608bc40 670fd6a0  
I/DEBUG   (  109):     5fb49c78 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49c88 00000000 00000000 00000000 00000000  
I/DEBUG   (  109):     5fb49c98 00000000 3f000000 00000000 70333880  
I/DEBUG   (  109):     5fb49ca8 70333878 5fb49cd4 5fb49d90 65115790  
I/DEBUG   (  109): 
I/DEBUG   (  109): code around pc:
I/DEBUG   (  109):     00000000 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     00000010 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     00000020 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     00000030 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     00000040 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     00000050 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     00000060 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     00000070 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     00000080 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     00000090 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     000000a0 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     000000b0 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     000000c0 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     000000d0 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     000000e0 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109):     000000f0 ffffffff ffffffff ffffffff ffffffff  
I/DEBUG   (  109): 
I/DEBUG   (  109): code around lr:
I/DEBUG   (  109):     5f1c36c4 e5933038 e12fff33 e8bd8008 e92d4008  
I/DEBUG   (  109):     5f1c36d4 e590004c e5903000 e593303c e12fff33  
I/DEBUG   (  109):     5f1c36e4 e8bd8008 e52de004 e24dd00c e590004c  
I/DEBUG   (  109):     5f1c36f4 e28d3008 e1d110b0 e5902000 e16310b8  
I/DEBUG   (  109):     5f1c3704 e1a0100d e5923028 e12fff33 e28dd00c  
I/DEBUG   (  109):     5f1c3714 e49df004 e92d4008 e590004c e5903000  
I/DEBUG   (  109):     5f1c3724 e5933030 e12fff33 e8bd8008 e92d4010  
I/DEBUG   (  109):     5f1c3734 e1a04000 e591104c e5913000 e593302c  
I/DEBUG   (  109):     5f1c3744 e12fff33 e1a00004 e8bd8010 e92d4008  
I/DEBUG   (  109):     5f1c3754 e5903050 e5831038 e590004c e5903000  
I/DEBUG   (  109):     5f1c3764 e5933024 e12fff33 e8bd8008 e5903050  
I/DEBUG   (  109):     5f1c3774 e5930038 e12fff1e e92d4008 e5903050  
I/DEBUG   (  109):     5f1c3784 e583103c e590004c e5903000 e5933024  
I/DEBUG   (  109):     5f1c3794 e12fff33 e8bd8008 e5903050 e593003c  
I/DEBUG   (  109):     5f1c37a4 e12fff1e e92d4008 e5903050 e5831040  
I/DEBUG   (  109):     5f1c37b4 e590004c e5903000 e5933024 e12fff33  
I/DEBUG   (  109): !@dumpstate -k -t -z -d -o /data/log/dumpstate_app_native -m 7485
D/dalvikvm(  499): GC_CONCURRENT freed 2082K, 21% free 29400K/36928K, paused 21ms+20ms, total 269ms
D/dalvikvm(  499): WAIT_FOR_CONCURRENT_GC blocked 210ms
D/dalvikvm(10234): Late-enabling CheckJNI
D/dalvikvm( 1024): GC_EXPLICIT freed 1646K, 38% free 10880K/17376K, paused 45ms+23ms, total 230ms
D/dalvikvm(10234): DexOpt: couldn't find static field Landroid/os/Build;.SUPPORTED_ABIS
W/dalvikvm(10234): VFY: unable to resolve static field 259 (SUPPORTED_ABIS) in Landroid/os/Build;
D/dalvikvm(10234): VFY: replacing opcode 0x62 at 0x0095
I/dalvikvm(10234): Could not find method android.app.ActivityManager.isLowRamDevice, referenced from method com.google.android.apps.gsa.shared.util.ce.bf
W/dalvikvm(10234): VFY: unable to resolve virtual method 400: Landroid/app/ActivityManager;.isLowRamDevice ()Z
D/dalvikvm(10234): VFY: replacing opcode 0x6e at 0x0010
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
E/dalvikvm(10234): Could not find class 'com.google.android.apps.gsa.assist.GsaVoiceInteractionSession', referenced from method com.google.android.apps.gsa.assist.GsaVoiceInteractionSession_MembersInjector.au
W/dalvikvm(10234): VFY: unable to resolve check-cast 2945 (Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;) in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;
D/dalvikvm(10234): VFY: replacing opcode 0x1f at 0x0000
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4622 at 0x14 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x461e at 0x1e in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4642 at 0x26 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4643 at 0x2e in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4621 at 0x38 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4644 at 0x40 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4620 at 0x48 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4625 at 0x50 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4626 at 0x5a in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4627 at 0x64 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4628 at 0x6c in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4629 at 0x74 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x462a at 0x7e in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x462b at 0x88 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x461f at 0x92 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x462c at 0x9c in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x462d at 0xa4 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x462e at 0xae in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x462f at 0xb8 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4630 at 0xc2 in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession; (505)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x4631 at 0xcc in Lcom/google/android/apps/gsa/assist/GsaVoiceInteractionSession_MembersInjector;.au
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/tasks/VelvetBackgroundTasksJobService; (154)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/tasks/VelvetBackgroundTasksJobService;' failed
E/dalvikvm(10234): Could not find class 'com.google.android.apps.gsa.tasks.VelvetBackgroundTasksJobService', referenced from method com.google.android.apps.gsa.tasks.l.au
W/dalvikvm(10234): VFY: unable to resolve check-cast 9755 (Lcom/google/android/apps/gsa/tasks/VelvetBackgroundTasksJobService;) in Lcom/google/android/apps/gsa/tasks/l;
D/dalvikvm(10234): VFY: replacing opcode 0x1f at 0x0000
W/dalvikvm(10234): Unable to resolve superclass of Lcom/google/android/apps/gsa/tasks/VelvetBackgroundTasksJobService; (154)
W/dalvikvm(10234): Link of class 'Lcom/google/android/apps/gsa/tasks/VelvetBackgroundTasksJobService;' failed
I/dalvikvm(10234): DexOpt: unable to optimize instance field ref 0x981e at 0x12 in Lcom/google/android/apps/gsa/tasks/l;.au
D/dalvikvm(10234): DexOpt: couldn't find static field Landroid/os/Build;.SUPPORTED_ABIS
W/dalvikvm(10234): VFY: unable to resolve static field 259 (SUPPORTED_ABIS) in Landroid/os/Build;
D/dalvikvm(10234): VFY: replacing opcode 0x62 at 0x0063
D/dalvikvm(10234): GC_CONCURRENT freed 725K, 33% free 5762K/8508K, paused 5ms+4ms, total 48ms
I/dalvikvm(10234): Could not find method android.os.UserManager.getUserProfiles, referenced from method com.google.android.apps.gsa.shared.util.cd.bd
W/dalvikvm(10234): VFY: unable to resolve virtual method 2481: Landroid/os/UserManager;.getUserProfiles ()Ljava/util/List;
D/dalvikvm(10234): VFY: replacing opcode 0x6e at 0x001c
D/dalvikvm(10234): GC_CONCURRENT freed 130K, 29% free 6101K/8508K, paused 7ms+10ms, total 57ms
D/dalvikvm(10234): WAIT_FOR_CONCURRENT_GC blocked 14ms
I/dalvikvm(10234): Could not find method android.app.AlarmManager.setExactAndAllowWhileIdle, referenced from method com.google.android.apps.gsa.search.core.r.c.b
W/dalvikvm(10234): VFY: unable to resolve virtual method 409: Landroid/app/AlarmManager;.setExactAndAllowWhileIdle (IJLandroid/app/PendingIntent;)V
D/dalvikvm(10234): VFY: replacing opcode 0x6e at 0x000e
I/dalvikvm(10234): Could not find method android.app.AlarmManager.setExact, referenced from method com.google.android.apps.gsa.search.core.r.c.setExact
W/dalvikvm(10234): VFY: unable to resolve virtual method 408: Landroid/app/AlarmManager;.setExact (IJLandroid/app/PendingIntent;)V
D/dalvikvm(10234): VFY: replacing opcode 0x6e at 0x000e
I/dalvikvm(10234): Could not find method android.content.Context.checkSelfPermission, referenced from method com.google.android.apps.gsa.d.a.e
W/dalvikvm(10234): VFY: unable to resolve virtual method 949: Landroid/content/Context;.checkSelfPermission (Ljava/lang/String;)I
D/dalvikvm(10234): VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm(10234): Could not find method android.content.IntentFilter.addDataSchemeSpecificPart, referenced from method com.google.android.apps.gsa.search.core.r.Mn
W/dalvikvm(10234): VFY: unable to resolve virtual method 1095: Landroid/content/IntentFilter;.addDataSchemeSpecificPart (Ljava/lang/String;I)V
D/dalvikvm(10234): VFY: replacing opcode 0x6e at 0x0050
I/dalvikvm(10234): Could not find method android.app.Notification$Builder.setLocalOnly, referenced from method com.google.android.gms.common.f.d
W/dalvikvm(10234): VFY: unable to resolve virtual method 607: Landroid/app/Notification$Builder;.setLocalOnly (Z)Landroid/app/Notification$Builder;
D/dalvikvm(10234): VFY: replacing opcode 0x6e at 0x00fe
I/dalvikvm(10234): DexOpt: access denied from Lcom/google/android/gms/common/f; to field Landroid/app/Notification;.extras
W/dalvikvm(10234): VFY: unable to resolve instance field 64
D/dalvikvm(10234): VFY: replacing opcode 0x54 at 0x011d
I/dalvikvm(10234): Could not find method android.app.Notification$Builder.setLocalOnly, referenced from method com.google.android.gms.common.f.e
W/dalvikvm(10234): VFY: unable to resolve virtual method 607: Landroid/app/Notification$Builder;.setLocalOnly (Z)Landroid/app/Notification$Builder;
D/dalvikvm(10234): VFY: replacing opcode 0x6e at 0x00cf
I/dalvikvm(10234): DexOpt: access denied from Lcom/google/android/gms/common/f; to field Landroid/app/Notification;.extras
W/dalvikvm(10234): VFY: unable to resolve instance field 64
D/dalvikvm(10234): VFY: replacing opcode 0x54 at 0x00ee
I/dalvikvm(10234): Could not find method android.content.pm.PackageManager.getPackageInstaller, referenced from method com.google.android.gms.common.h.L
W/dalvikvm(10234): VFY: unable to resolve virtual method 1184: Landroid/content/pm/PackageManager;.getPackageInstaller ()Landroid/content/pm/PackageInstaller;
D/dalvikvm(10234): VFY: replacing opcode 0x6e at 0x000e
I/dalvikvm(10234): Could not find method android.os.UserManager.getApplicationRestrictions, referenced from method com.google.android.gms.common.h.L
W/dalvikvm(10234): VFY: unable to resolve virtual method 2477: Landroid/os/UserManager;.getApplicationRestrictions (Ljava/lang/String;)Landroid/os/Bundle;
D/dalvikvm(10234): VFY: replacing opcode 0x6e at 0x0047
E/dalvikvm(10234): Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.h.c
W/dalvikvm(10234): VFY: unable to resolve check-cast 97 (Landroid/app/AppOpsManager;) in Lcom/google/android/gms/common/h;
D/dalvikvm(10234): VFY: replacing opcode 0x1f at 0x0010
W/dalvikvm(10234): Exception Ljava/lang/RuntimeException; thrown while initializing Lcom/google/common/util/concurrent/l;
I/dalvikvm(10234): Could not find method android.service.voice.VoiceInteractionService.isActiveService, referenced from method com.google.android.apps.gsa.w.c.d.a
W/dalvikvm(10234): VFY: unable to resolve static method 2601: Landroid/service/voice/VoiceInteractionService;.isActiveService (Landroid/content/Context;Landroid/content/ComponentName;)Z
D/dalvikvm(10234): VFY: replacing opcode 0x71 at 0x0043
E/dalvikvm(10234): adjustAdaptiveCoef max=4194304, min=1048576, ut=568
D/dalvikvm(10234): GC_CONCURRENT freed 313K, 28% free 6266K/8600K, paused 10ms+79ms, total 122ms
E/dalvikvm(10234): Could not find class 'android.content.pm.LauncherApps', referenced from method com.google.android.apps.gsa.search.shared.multiuser.l.connect
W/dalvikvm(10234): VFY: unable to resolve check-cast 208 (Landroid/content/pm/LauncherApps;) in Lcom/google/android/apps/gsa/search/shared/multiuser/l;
D/dalvikvm(10234): VFY: replacing opcode 0x1f at 0x0089
D/dalvikvm(10273): Late-enabling CheckJNI
D/dalvikvm(19135): GC_CONCURRENT freed 407K, 35% free 5559K/8436K, paused 9ms+17ms, total 352ms
I/ActivityManager(  499): Process <redacted> (pid 7485) (adj 0) has died.
W/ActivityManager(  499): Force removing ActivityRecord{42aa0b98 u0 <redacted>/com.unity3d.player.UnityPlayerActivity}: app died, no saved state
W/ActivityManager(  499): mDVFSHelper.acquire()
W/ActivityManager(  499): mDVFSHelper.release()

1GB system, memory use 100…150 mb. Crash happens regardless of memory usage, app had no issue running with 300 mb of ram allocation.

No custom roms.

I wrote my own collision system and replaced Physics.OverlapBox with my own function.

Have not experienced any crashes since then. Collision queries take a bit longer, but the program does not die randomly anymore.

So, it is a physx bug, specific to android.

The Physics.OverlapBox method is quite new in Unity, I had have to write my own solution with OverlapSphere. Probably OverlapBox is broken. I guess Unity’s code looks very similar, because a sphere check is very fast and I guess even with the overhead this solution would be faster than a ‘real’ box check.

public static List<Collider> OverlapBox2(Bounds bounds, int layerMask) {
        Vector3 center = bounds.center;
        Vector3 onePoint = new Vector3(center.x + bounds.size.x / 2, center.y + bounds.size.y / 2, center.z + bounds.size.z / 2);
        float radius = Vector3.Distance(center, onePoint);

        List<Collider> inBox = new List<Collider>();
        Collider[] hitColliders = Physics.OverlapSphere(center, radius, layerMask);
        foreach (Collider col in hitColliders) {

            if (bounds.Intersects(col.bounds)) {
                // Inside box
                inBox.Add(col);
            }
        }

        return inBox;
    }

If this doesn’t crash for you, then there is a high probability that the OverlapBox is broken.

The adb output shows the state of your device, also shows the errors, the warnings, what tasks running, what tasks are closed to run your application and much more.

We encounterd the same problem for Physics.OverlapBoxNonAlloc() on 5.3.5p1 and 5.4.0f2.
It must be broken!

Hi. We have same problem on 5.3.4p1.
Did anyone posted a bug with this?

It’s been a long time ago, so I forgot if I filed a bug regarding this one. Feel free to do it yourself.

As I said, in my case I rolled out replacement collision detection system which supported OBBs and nothing more.

I have found a crash with Physics.OverlapBoxNonAlloc() in android, but I have not seen the crash with other Physics.OverlapBox(), is it related with the NonAlloc version or it can be happening in both alloc and non alloc?

It happens with both. I’ve just run into this myself, I assumed it was due to a long ass algorithm for generating a dungeon, so I broke it up into signals and commands (I’m using StrangeIOC), that helped a little, but it still happens when the dungeon generation has to grind a bit longer. I’ve also tried yield returning if the path has been blocked, etc etc.

I tried switching to non-alloc version of overlap box, and it did seem to reduce the crash, but it still did happen eventually. It’s like the algorithm just isn’t releasing memory, so every time you call it, it’s adding up and adding up.

I also should mention, I’m using beta 5.6.0b9, but it seems that doesn’t really matter for this case.

BTW: It has NEVER happened in Editor, just on Android, both on a Pixel, and an older Droid XT1080.

In the mean time, this just returns true, if a collision happened, or false if it didn’t…

using UnityEngine;

public static class CollisionCheck
{

    private static Vector3 _AB = new Vector3(); // Direction A to B
    private static float[] _R = new float[9]; // 3x3 Rotation
    private static float[] _AbsR = new float[9]; // 3x3 Rotation
    private static Vector3 _AX = new Vector3(); // A Axis
    private static Vector3 _BX = new Vector3(); // B Axis

    private static Vector3 _v1 = new Vector3();
    private static Vector3 _v2 = new Vector3();
    private static Vector3 _v3 = new Vector3();

    private static float[] _aRot = new float[9];
    private static float[] _bRot = new float[9];

    private static float ar = 0.0f, br = 0.0f;

    private static float[] _identityMatrix = new float[9] { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f };

    // Adapted from: http://www.gamasutra.com/view/feature/131790/simple_intersection_tests_for_games.php?print=1
    public static bool Box_Box (Vector3 aPos, Vector3 aSize, Quaternion aQuat, Vector3 bPos, Vector3 bSize, Quaternion bQuat)
    {
        ar = 0.0f;
        br = 0.0f;

        QuaternionToFloatArray(aQuat, _aRot);
        QuaternionToFloatArray(bQuat, _bRot);


        for (int i = 0, i1 = 0; i < 3; i++, i1 += 3)
        {
            _AX.Set(_aRot[i1], _aRot[i1 + 1], _aRot[i1 + 2]);
            for (int j = 0, j1 = 0; j < 3; j++, j1 += 3)
            {
                _BX.Set(_bRot[j1], _bRot[j1 + 1], _bRot[j1 + 2]);
                _R[i1 + j] = Vector3.Dot(_AX, _BX);
            }
        }

        _AB = bPos - aPos;

        _v1.Set(_aRot[0], _aRot[1], _aRot[2]);
        _v2.Set(_aRot[3], _aRot[4], _aRot[5]);
        _v3.Set(_aRot[6], _aRot[7], _aRot[8]);

        _AB.Set(Vector3.Dot(_AB, _v1), Vector3.Dot(_AB, _v2), Vector3.Dot(_AB, _v3));

        for (int i = 0; i < 9; i++)
        {
            _AbsR[i] = Mathf.Abs(_R[i]) + 0.001f;
        }
        // Test axes L = A0, L = A1, L = A2
        for (int i = 0, i1 = 0; i < 3; i++, i1 += 3)
        {
            ar = aSize[i];
            br = (bSize[0] * _AbsR[i1]) + (bSize[1] * _AbsR[i1 + 1]) + (bSize[2] * _AbsR[i1 + 2]);
            if (Mathf.Abs(_AB[i]) > (ar + br)) { return false; }
        }
        // Test axes L = B0, L = B1, L = B2
        for (int i = 0; i < 3; i++)
        {
            ar = (aSize[0] * _AbsR[i]) + (aSize[1] * _AbsR[i + 3]) + (aSize[2] * _AbsR[i + 6]);
            br = bSize[i];
            if (Mathf.Abs((_AB[0] * _R[i]) + (_AB[1] * _R[i + 3]) + (_AB[2] * _R[i + 6])) > (ar + br)) { return false; }
        }
        // Test axis L = A0 x B0
        ar = (aSize[1] * _AbsR[6]) + (aSize[2] * _AbsR[3]);
        br = (bSize[1] * _AbsR[2]) + (bSize[2] * _AbsR[1]);
        if (Mathf.Abs(_AB[2] * _R[3] - _AB[1] * _R[6]) > (ar + br)) { return false; }
        // Test axis L = A0 x B1
        ar = (aSize[1] * _AbsR[7]) + (aSize[2] * _AbsR[4]);
        br = (bSize[0] * _AbsR[2]) + (bSize[2] * _AbsR[0]);
        if (Mathf.Abs((_AB[2] * _R[4]) - (_AB[1] * _R[7])) > (ar + br)) { return false; }
        // Test axis L = A0 x B2
        ar = aSize[1] * _AbsR[8] + aSize[2] * _AbsR[5];
        br = bSize[0] * _AbsR[1] + bSize[1] * _AbsR[0];
        if (Mathf.Abs((_AB[2] * _R[5]) - (_AB[1] * _R[8])) > (ar + br)) { return false; }
        // Test axis L = A1 x B0
        ar = (aSize[0] * _AbsR[6]) + (aSize[2] * _AbsR[0]);
        br = (bSize[1] * _AbsR[5]) + (bSize[2] * _AbsR[4]);
        if (Mathf.Abs((_AB[0] * _R[6]) - (_AB[2] * _R[0])) > (ar + br)) { return false; }
        // Test axis L = A1 x B1
        ar = (aSize[0] * _AbsR[7]) + (aSize[2] * _AbsR[1]);
        br = (bSize[0] * _AbsR[5]) + (bSize[2] * _AbsR[3]);
        if (Mathf.Abs((_AB[0] * _R[7]) - (_AB[2] * _R[1])) > (ar + br)) { return false; }
        // Test axis L = A1 x B2
        ar = (aSize[0] * _AbsR[8]) + (aSize[2] * _AbsR[2]);
        br = (bSize[0] * _AbsR[4]) + (bSize[1] * _AbsR[3]);
        if (Mathf.Abs((_AB[0] * _R[8]) - (_AB[2] * _R[2])) > (ar + br)) { return false; }
        // Test axis L = A2 x B0
        ar = (aSize[0] * _AbsR[3]) + (aSize[1] * _AbsR[0]);
        br = (bSize[1] * _AbsR[8]) + (bSize[2] * _AbsR[7]);
        if (Mathf.Abs((_AB[1] * _R[0]) - (_AB[0] * _R[3])) > (ar + br)) { return false; }
        // Test axis L = A2 x B1
        ar = (aSize[0] * _AbsR[4]) + (aSize[1] * _AbsR[1]);
        br = (bSize[0] * _AbsR[8]) + (bSize[2] * _AbsR[6]);
        if (Mathf.Abs((_AB[1] * _R[1]) - (_AB[0] * _R[4])) > (ar + br)) { return false; }
        // Test axis L = A2 x B2
        ar = (aSize[0] * _AbsR[4]) + (aSize[1] * _AbsR[2]);
        br = (bSize[0] * _AbsR[7]) + (bSize[1] * _AbsR[6]);
        if (Mathf.Abs((_AB[1] * _R[2]) - (_AB[0] * _R[5])) > (ar + br)) { return false; }
        return true;
    }

    // Adapted from: http://www.mrelusive.com/publications/papers/SIMD-From-Quaternion-to-Matrix-and-Back.pdf
    private static float[] QuaternionToFloatArray(Quaternion aQuat, float[] aFlatMatrix3x3 )
    {
        if(aFlatMatrix3x3 == null) {
            aFlatMatrix3x3 = new float[9];
        }

        aFlatMatrix3x3[0] = 1- (2.0f * (aQuat.y * aQuat.y)) - (2.0f * (aQuat.z * aQuat.z));
        aFlatMatrix3x3[1] = (2.0f * (aQuat.x * aQuat.y)) + (2.0f * (aQuat.w * aQuat.z));
        aFlatMatrix3x3[2] = (2.0f * (aQuat.x * aQuat.z)) - (2.0f * (aQuat.w * aQuat.y));

        aFlatMatrix3x3[3] = (2.0f * (aQuat.x * aQuat.y)) - (2.0f * (aQuat.w * aQuat.z));
        aFlatMatrix3x3[4] = 1.0f - (2.0f * (aQuat.x * aQuat.x)) - (2.0f * (aQuat.z * aQuat.z));
        aFlatMatrix3x3[5] = (2.0f * (aQuat.y * aQuat.z)) + (2.0f * (aQuat.w * aQuat.x));

        aFlatMatrix3x3[6] = (2.0f * (aQuat.x * aQuat.z)) + (2.0f * (aQuat.w * aQuat.y));
        aFlatMatrix3x3[7] = (2.0f * (aQuat.y * aQuat.z)) - (2.0f * (aQuat.w * aQuat.x));
        aFlatMatrix3x3[8] = 1.0f - (2.0f * (aQuat.x * aQuat.x)) - (2.0f * (aQuat.y * aQuat.y));

        return aFlatMatrix3x3;
    }
}

I’m seeing the same issues with Physics.OverlapCapsuleNonAlloc.

I have filed a bug about it, but no test project with it unfortunately

Bug Report below, no Issue Tracker ID yet:


Hard crash on Android due to Physics.OverlapCapsuleNonAlloc

  1. Hard crash on Android due to Physics.OverlapCapsuleNonAlloc()

  2. Unfortuantely, I can’t attach our project and have not been able to reproduce in a simple test project.

The problem pretty much occurs on every run through of the game provided we play for a few minutes. When it happens appears to be random.

  1. I am using Physics.OverlapCapsuleNonAlloc() by passing the position of the bottom capsule sphere first, followd by the top sphere. The radius is 0.49 units. The capsule height (total) is 1.47 units. I call this every frame on my player character object.

The buffer foir the overlapping objects is declared as:

Collider[ ] depentrationResults = new Collider[10];

Generally, only 1 or 2 elements in the buffer are required/used.

I set the individsual elements of the buffer all to nulll each frame before I call Physics.OverlapCapsuleNonAlloc() in orde to reset them.

06-16 15:12:21.078 27814-27830/? A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 27830 (UnityMain)
06-16 15:12:21.188 200-200/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-16 15:12:21.188 200-200/? A/DEBUG: Build fingerprint: ‘google/hammerhead/hammerhead:6.0.1/M4B30Z/3437181:user/release-keys’
06-16 15:12:21.188 200-200/? A/DEBUG: Revision: ‘11’
06-16 15:12:21.188 200-200/? A/DEBUG: ABI: ‘arm’
06-16 15:12:21.188 200-200/? A/DEBUG: pid: 27814, tid: 27830, name: UnityMain >>> com.PixelSmashGames.QuikSid <<<
06-16 15:12:21.188 200-200/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
06-16 15:12:21.208 200-200/? A/DEBUG: r0 aee3e114 r1 93399750 r2 00000000 r3 952aba30
06-16 15:12:21.208 200-200/? A/DEBUG: r4 aee3ec24 r5 aee3ebe8 r6 93399750 r7 952aba30
06-16 15:12:21.208 200-200/? A/DEBUG: r8 92f849a0 r9 00000000 sl 00000000 fp aee3ea28
06-16 15:12:21.208 200-200/? A/DEBUG: ip a145f7e8 sp aee3e100 lr a145f820 pc 00000000 cpsr a0070010
06-16 15:12:21.212 200-200/? A/DEBUG: backtrace:
06-16 15:12:21.213 200-200/? A/DEBUG: #00 pc 00000000
06-16 15:12:21.213 200-200/? A/DEBUG: #01 pc 004af81c /data/app/com.PixelSmashGames.QuikSid-2/lib/arm/libunity.so
06-16 15:12:21.213 200-200/? A/DEBUG: #02 pc 00cf73e0 /data/app/com.PixelSmashGames.QuikSid-2/lib/arm/libunity.so
06-16 15:12:21.213 200-200/? A/DEBUG: #03 pc 00e19358 /data/app/com.PixelSmashGames.QuikSid-2/lib/arm/libunity.so
06-16 15:12:21.213 200-200/? A/DEBUG: #04 pc 00e1e888 /data/app/com.PixelSmashGames.QuikSid-2/lib/arm/libunity.so
06-16 15:12:21.213 200-200/? A/DEBUG: #05 pc 00e12250 /data/app/com.PixelSmashGames.QuikSid-2/lib/arm/libunity.so
06-16 15:12:21.213 200-200/? A/DEBUG: #06 pc 00cf90a8 /data/app/com.PixelSmashGames.QuikSid-2/lib/arm/libunity.so
06-16 15:12:21.213 200-200/? A/DEBUG: #07 pc 00cf91f4 /data/app/com.PixelSmashGames.QuikSid-2/lib/arm/libunity.so
06-16 15:12:21.213 200-200/? A/DEBUG: #08 pc 00493ba8 /data/app/com.PixelSmashGames.QuikSid-2/lib/arm/libunity.so
06-16 15:12:21.213 200-200/? A/DEBUG: #09 pc 0072edcc /data/app/com.PixelSmashGames.QuikSid-2/lib/arm/libunity.so
06-16 15:12:21.214 200-200/? A/DEBUG: #10 pc 0001e9a4

This callstack symboicates to:

#00 NULL UNKNOWN
#01 CastFilter::preFilter(physx::pxFilterData const&, physx::pxShape const*, physx::pxRigidActor const*, physx::pxFlags<physx::pxHitFlag::Enum, unsigned short>&)
#02 MultiQueryCallbackphysx::pxOverlapHit::invoke(float&, physx::Sq::prunerPayload const*, unsigned int)
#03 BucketPrunerOverlapTraversal<OBBAABBTest_SIMD, false>::hushed:perator()(physx::Sq::BucketPrunerCore const&, OBBAABBTest_SIMD const&, physx::Sq::prunerCallback&, physx::pxBounds3 const&) [clone .part.26]
#04 physx::Sq::BucketPrunerCore::hushed:verlap(physx::Sq::ShapeData const&, physx::Sq::prunerCallback&) const
#05 physx::Sq::AABBPruner::hushed:verlap(physx::Sq::ShapeData const&, physx::Sq::prunerCallback&) const
#06 bool physx::NpSceneQueries::multiQueryphysx::pxOverlapHit(physx::MultiQueryInput const&, physx::pxHitCallbackphysx::pxOverlapHit&, physx::pxFlags<physx::pxHitFlag::Enum, unsigned short>, physx::pxQueryCache const*, physx::pxQueryFilterData const&, physx::pxQueryFilterCallback*, physx::BatchQueryFilterData*) const
#07 physx::NpSceneQueries::hushed:verlap(physx::pxGeometry const&, physx::pxTransform const&, physx::pxHitCallbackphysx::pxOverlapHit&, physx::pxQueryFilterData const&, physx::pxQueryFilterCallback*) const
#08 Unity::physicsQuery::OverlapCapsuleNonAlloc(Vector3f const&, Vector3f const&, float, Collider**, int, int, QueryTriggerInteraction)
#09 Physics_CUSTOM_INTERNAL_CALL_OverlapCapsuleNonAlloc(Vector3f const&, Vector3f const&, float, MonoArray*, int, QueryTriggerInteraction)
#10 UNKNOWN .

I’m having this problem on Android as well, using Unity 5.6.0f3. Seems like a pretty fundamental problem.
Here’s the stack trace:

07-31 20:50:13.490 14671 14671 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
07-31 20:50:13.490 14671 14671 F DEBUG   :     r0 e407ed34  r1 c5e5bd10  r2 00000000  r3 c5bcdd10
07-31 20:50:13.490 14671 14671 F DEBUG   :     r4 e407f81c  r5 e407f808  r6 c5e5bd10  r7 c5bcdd10
07-31 20:50:13.490 14671 14671 F DEBUG   :     r8 ca4079e0  r9 00000000  sl 00000000  fp e407f648
07-31 20:50:13.490 14671 14671 F DEBUG   :     ip d0dd68cc  sp e407ed20  lr d0dd6904  pc 00000000  cpsr a00d0010
07-31 20:50:13.510 14671 14671 F DEBUG   :
07-31 20:50:13.510 14671 14671 F DEBUG   : backtrace:
07-31 20:50:13.510 14671 14671 F DEBUG   :     #00 pc 00000000  <unknown>
07-31 20:50:13.510 14671 14671 F DEBUG   :     #01 pc 007f2900  /data/app/com.mycompany.mygame-2/lib/arm/libunity.so (_ZN10CastFilter9preFilterERKN5physx12PxFilterDataEPKNS0_7PxShapeEPKNS0_12PxRigidActorERNS0_7PxFlagsINS0_9PxHitFlag4EnumEtEE+52)
07-31 20:50:13.510 14671 14671 F DEBUG   :     #02 pc 011a2c70  /data/app/com.mycompany.mygame-2/lib/arm/libunity.so (_ZN18MultiQueryCallbackIN5physx12PxOverlapHitEE6invokeERfPKNS0_2Sq13PrunerPayloadEj+388)
07-31 20:50:13.510 14671 14671 F DEBUG   :     #03 pc 012c4b68  /data/app/com.mycompany.mygame-2/lib/arm/libunity.so (_ZN28BucketPrunerOverlapTraversalI16OBBAABBTest_SIMDLb0EEclERKN5physx2Sq16BucketPrunerCoreERKS0_RNS3_14PrunerCallbackERKNS2_9PxBounds3E.part.26+2260)
07-31 20:50:13.510 14671 14671 F DEBUG   :     #04 pc 012ca098  /data/app/com.mycompany.mygame-2/lib/arm/libunity.so (_ZNK5physx2Sq16BucketPrunerCore7overlapERKNS0_9ShapeDataERNS0_14PrunerCallbackE+2844)
07-31 20:50:13.510 14671 14671 F DEBUG   :     #05 pc 012bda60  /data/app/com.mycompany.mygame-2/lib/arm/libunity.so (_ZNK5physx2Sq10AABBPruner7overlapERKNS0_9ShapeDataERNS0_14PrunerCallbackE+228)
07-31 20:50:13.510 14671 14671 F DEBUG   :     #06 pc 011a4938  /data/app/com.mycompany.mygame-2/lib/arm/libunity.so (_ZNK5physx14NpSceneQueries10multiQueryINS_12PxOverlapHitEEEbRKNS_15MultiQueryInputERNS_13PxHitCallbackIT_EENS_7PxFlagsINS_9PxHitFlag4EnumEtEEPKNS_12PxQ
ueryCacheERKNS_17PxQueryFilterDataEPNS_21PxQueryFilterCallbackEPNS_20BatchQueryFilterDataE+1804)
07-31 20:50:13.510 14671 14671 F DEBUG   :     #07 pc 011a4a84  /data/app/com.mycompany.mygame-2/lib/arm/libunity.so (_ZNK5physx14NpSceneQueries7overlapERKNS_10PxGeometryERKNS_11PxTransformERNS_13PxHitCallbackINS_12PxOverlapHitEEERKNS_17PxQueryFilterDataEPNS_21PxQueryF
ilterCallbackE+92)
07-31 20:50:13.510 14671 14671 F DEBUG   :     #08 pc 007d4954  /data/app/com.mycompany.mygame-2/lib/arm/libunity.so (_ZN5Unity12PhysicsQuery18OverlapBoxInternalERK8Vector3fS3_RK11Quaternionfi23QueryTriggerInteractionRN5physx13PxHitCallbackINS8_12PxOverlapHitEEE+260)
07-31 20:50:13.510 14671 14671 F DEBUG   :     #09 pc 007d4a64  /data/app/com.mycompany.mygame-2/lib/arm/libunity.so (_ZN5Unity12PhysicsQuery18OverlapBoxNonAllocERK8Vector3fS3_RK11QuaternionfPP8Colliderii23QueryTriggerInteraction+244)
07-31 20:50:13.511 14671 14671 F DEBUG   :     #10 pc 00ad01fc  /data/app/com.mycompany.mygame-2/lib/arm/libunity.so (_Z47Physics_CUSTOM_INTERNAL_CALL_OverlapBoxNonAllocRK8Vector3fS1_P9MonoArrayRK11Quaternionfi23QueryTriggerInteraction+152)

Thank you very much for posting this code.

I used it to reimplement the OverlapBox API that is broken. It uses an OverlapSphere to get the nearby colliders, and then uses your BoxBox algorithm to see if the box collider is touching the other collider. The other collider is assumed to also be a box collider, if it is not, the collision will not be accurate (it will use the other colliders transform localScale as the box extents).

Also, I’m relying on this mental calculation I made that the Sphere that fully encompases a box will have a radius of:

var radius = 0.5f * new Vector3(boxWidth, boxHeight, boxDepth).magnitude;

Someone please let me know if I’m wrong there. EDIT: I have since confirmed this to be true.

Here’s my blog post about the workaround.

Here’s the code that reimplements OverlapBox. It’s very fast and is built on top of Bunzaga’s collision detection. It works correctly for BoxColliders, and almost for Sphere Colliders. If you need accurate results against Sphere Colliders, update the position and halfExtent calculations with specific code for Shere Colliders.

using UnityEngine;

public static class CollisionCheck
{
    private static Vector3 _AB = new Vector3(); // Direction A to B
    private static float[] _R = new float[9]; // 3x3 Rotation
    private static float[] _AbsR = new float[9]; // 3x3 Rotation
    private static Vector3 _AX = new Vector3(); // A Axis
    private static Vector3 _BX = new Vector3(); // B Axis
 
    private static Vector3 _v1 = new Vector3();
    private static Vector3 _v2 = new Vector3();
    private static Vector3 _v3 = new Vector3();
 
    private static float[] _aRot = new float[9];
    private static float[] _bRot = new float[9];
 
    private static float ar = 0.0f, br = 0.0f;
 
    private static float[] _identityMatrix = new float[9] { 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f };

    private static Collider[] sphere_cast_collider_storage = new Collider[32];

    public static Vector3 HalfExtentsFromBoxCollider(BoxCollider boxCollider1) {
        return new Vector3(boxCollider1.size.x * boxCollider1.transform.localScale.x * 0.5f, boxCollider1.size.y * boxCollider1.transform.localScale.y * 0.5f, boxCollider1.size.z * boxCollider1.transform.localScale.z * 0.5f);
    }
    public static Vector3 PositionFromCollider(BoxCollider collider) {
        return collider.transform.position + collider.center;
    }

    public static int OverlapBox(Vector3 center, Vector3 halfExtents, Quaternion rotation, Collider[] colliderStorage, LayerMask killLayer) {
        var radius = 0.5f * new Vector3(halfExtents.x*2.0f, halfExtents.y*2.0f, halfExtents.z*2.0f).magnitude;
        int numOverlaps = Physics.OverlapSphereNonAlloc(center, radius, sphere_cast_collider_storage, killLayer.value);
        int numBoxOverlaps = 0;
        for (int i = 0; i < numOverlaps; i++) {
            var nearbyCollider = sphere_cast_collider_storage[I];
            //Debug.Log("Testing against " + nearbyCollider.gameObject.name);
            var nearbyBoxCollider = nearbyCollider.GetComponent<BoxCollider>();
            var nearbyColliderHalfExtents = nearbyBoxCollider != null ? HalfExtentsFromBoxCollider(nearbyBoxCollider) : nearbyCollider.transform.localScale * 0.5f;
            var nearbyColliderPosition = nearbyBoxCollider != null ? PositionFromCollider(nearbyBoxCollider) : nearbyCollider.transform.position;
            //Debug.Log("Position: " + nearbyCollider.transform.position);
            //Debug.Log("Rotation: " + nearbyCollider.transform.rotation);
            //Debug.Log("Half Extents: " + nearbyColliderHalfExtents);
            //Debug.Log("Has box: " + (nearbyBoxCollider != null).ToString());
            if (CollisionCheck.Box_Box(center, halfExtents, rotation, nearbyColliderPosition, nearbyColliderHalfExtents, nearbyCollider.transform.rotation)) {
                colliderStorage[numBoxOverlaps++] = sphere_cast_collider_storage[I];
            }
        }
        return numBoxOverlaps;
    }

    // Adapted from: [URL]http://www.gamasutra.com/view/feature/131790/simple_intersection_tests_for_games.php?print=1[/URL]
    public static bool Box_Box (Vector3 aPos, Vector3 aSize, Quaternion aQuat, Vector3 bPos, Vector3 bSize, Quaternion bQuat)
    {
        ar = 0.0f;
        br = 0.0f;
 
        QuaternionToFloatArray(aQuat, _aRot);
        QuaternionToFloatArray(bQuat, _bRot);
 
 
        for (int i = 0, i1 = 0; i < 3; i++, i1 += 3)
        {
            _AX.Set(_aRot[i1], _aRot[i1 + 1], _aRot[i1 + 2]);
            for (int j = 0, j1 = 0; j < 3; j++, j1 += 3)
            {
                _BX.Set(_bRot[j1], _bRot[j1 + 1], _bRot[j1 + 2]);
                _R[i1 + j] = Vector3.Dot(_AX, _BX);
            }
        }
 
        _AB = bPos - aPos;
 
        _v1.Set(_aRot[0], _aRot[1], _aRot[2]);
        _v2.Set(_aRot[3], _aRot[4], _aRot[5]);
        _v3.Set(_aRot[6], _aRot[7], _aRot[8]);
 
        _AB.Set(Vector3.Dot(_AB, _v1), Vector3.Dot(_AB, _v2), Vector3.Dot(_AB, _v3));
 
        for (int i = 0; i < 9; i++)
        {
            _AbsR[I] = Mathf.Abs(_R[I]) + 0.001f;
        }
        // Test axes L = A0, L = A1, L = A2
        for (int i = 0, i1 = 0; i < 3; i++, i1 += 3)
        {
            ar = aSize[I];
            br = (bSize[0] * _AbsR[i1]) + (bSize[1] * _AbsR[i1 + 1]) + (bSize[2] * _AbsR[i1 + 2]);
            if (Mathf.Abs(_AB[I]) > (ar + br)) { return false; }
        }
        // Test axes L = B0, L = B1, L = B2
        for (int i = 0; i < 3; i++)
        {
            ar = (aSize[0] * _AbsR[I]) + (aSize[1] * _AbsR[i + 3]) + (aSize[2] * _AbsR[i + 6]);
            br = bSize[I];
            if (Mathf.Abs((_AB[0] * _R[I]) + (_AB[1] * _R[i + 3]) + (_AB[2] * _R[i + 6])) > (ar + br)) { return false; }
        }
        // Test axis L = A0 x B0
        ar = (aSize[1] * _AbsR[6]) + (aSize[2] * _AbsR[3]);
        br = (bSize[1] * _AbsR[2]) + (bSize[2] * _AbsR[1]);
        if (Mathf.Abs(_AB[2] * _R[3] - _AB[1] * _R[6]) > (ar + br)) { return false; }
        // Test axis L = A0 x B1
        ar = (aSize[1] * _AbsR[7]) + (aSize[2] * _AbsR[4]);
        br = (bSize[0] * _AbsR[2]) + (bSize[2] * _AbsR[0]);
        if (Mathf.Abs((_AB[2] * _R[4]) - (_AB[1] * _R[7])) > (ar + br)) { return false; }
        // Test axis L = A0 x B2
        ar = aSize[1] * _AbsR[8] + aSize[2] * _AbsR[5];
        br = bSize[0] * _AbsR[1] + bSize[1] * _AbsR[0];
        if (Mathf.Abs((_AB[2] * _R[5]) - (_AB[1] * _R[8])) > (ar + br)) { return false; }
        // Test axis L = A1 x B0
        ar = (aSize[0] * _AbsR[6]) + (aSize[2] * _AbsR[0]);
        br = (bSize[1] * _AbsR[5]) + (bSize[2] * _AbsR[4]);
        if (Mathf.Abs((_AB[0] * _R[6]) - (_AB[2] * _R[0])) > (ar + br)) { return false; }
        // Test axis L = A1 x B1
        ar = (aSize[0] * _AbsR[7]) + (aSize[2] * _AbsR[1]);
        br = (bSize[0] * _AbsR[5]) + (bSize[2] * _AbsR[3]);
        if (Mathf.Abs((_AB[0] * _R[7]) - (_AB[2] * _R[1])) > (ar + br)) { return false; }
        // Test axis L = A1 x B2
        ar = (aSize[0] * _AbsR[8]) + (aSize[2] * _AbsR[2]);
        br = (bSize[0] * _AbsR[4]) + (bSize[1] * _AbsR[3]);
        if (Mathf.Abs((_AB[0] * _R[8]) - (_AB[2] * _R[2])) > (ar + br)) { return false; }
        // Test axis L = A2 x B0
        ar = (aSize[0] * _AbsR[3]) + (aSize[1] * _AbsR[0]);
        br = (bSize[1] * _AbsR[8]) + (bSize[2] * _AbsR[7]);
        if (Mathf.Abs((_AB[1] * _R[0]) - (_AB[0] * _R[3])) > (ar + br)) { return false; }
        // Test axis L = A2 x B1
        ar = (aSize[0] * _AbsR[4]) + (aSize[1] * _AbsR[1]);
        br = (bSize[0] * _AbsR[8]) + (bSize[2] * _AbsR[6]);
        if (Mathf.Abs((_AB[1] * _R[1]) - (_AB[0] * _R[4])) > (ar + br)) { return false; }
        // Test axis L = A2 x B2
        ar = (aSize[0] * _AbsR[4]) + (aSize[1] * _AbsR[2]);
        br = (bSize[0] * _AbsR[7]) + (bSize[1] * _AbsR[6]);
        if (Mathf.Abs((_AB[1] * _R[2]) - (_AB[0] * _R[5])) > (ar + br)) { return false; }
        return true;
    }
 
    // Adapted from: [URL]http://www.mrelusive.com/publications/papers/SIMD-From-Quaternion-to-Matrix-and-Back.pdf[/URL]
    private static float[] QuaternionToFloatArray(Quaternion aQuat, float[] aFlatMatrix3x3 )
    {
        if(aFlatMatrix3x3 == null) {
            aFlatMatrix3x3 = new float[9];
        }
 
        aFlatMatrix3x3[0] = 1- (2.0f * (aQuat.y * aQuat.y)) - (2.0f * (aQuat.z * aQuat.z));
        aFlatMatrix3x3[1] = (2.0f * (aQuat.x * aQuat.y)) + (2.0f * (aQuat.w * aQuat.z));
        aFlatMatrix3x3[2] = (2.0f * (aQuat.x * aQuat.z)) - (2.0f * (aQuat.w * aQuat.y));
 
        aFlatMatrix3x3[3] = (2.0f * (aQuat.x * aQuat.y)) - (2.0f * (aQuat.w * aQuat.z));
        aFlatMatrix3x3[4] = 1.0f - (2.0f * (aQuat.x * aQuat.x)) - (2.0f * (aQuat.z * aQuat.z));
        aFlatMatrix3x3[5] = (2.0f * (aQuat.y * aQuat.z)) + (2.0f * (aQuat.w * aQuat.x));
 
        aFlatMatrix3x3[6] = (2.0f * (aQuat.x * aQuat.z)) + (2.0f * (aQuat.w * aQuat.y));
        aFlatMatrix3x3[7] = (2.0f * (aQuat.y * aQuat.z)) - (2.0f * (aQuat.w * aQuat.x));
        aFlatMatrix3x3[8] = 1.0f - (2.0f * (aQuat.x * aQuat.x)) - (2.0f * (aQuat.y * aQuat.y));
 
        return aFlatMatrix3x3;
    }
}

We are seeing the same thing it seems with overlap capsule. Switching to overlap sphere seems to fix it. But after reading some of these forums I wonder if it won’t show up again.

iOS and editor do not have this problem.
Both versions of unity 2017 have the problem on android. Tried on several android devices with various os versions.
All seem to crash randomly.

Yeah I noticed that OverlapCapsule/CapsuleCast/CheckCapsule are all broken on Android as well. Though they seem to show up on some < 50% of calls.

Certainly an annoying, long standing problem. I wonder if there’s a bug number we can track yet.

Thanks for the sample code.
A few notes:

  • This should probably be collider.bounds.center or collider.transform.TransformPoint(collider.center)
  • The non box approximation could use nearbyCollider.bounds with the identity rotation
  • nearbyCollider.GetComponent() should be nearbyCollider as BoxCollider in case there is more than one collider in the gameobject