信号11(SIGSEGV)导致的本地崩溃,代码1(SEGV_MAPERR)

3
我刚刚在Google Play商店发布了我的Unity应用。然而,一些用户在以下设备上遇到了问题:三星Galaxy S3(Android 4.3),LG K10 LTE(Android 6.0),Highscreen Easy XL(Android 6.0),索尼Xperia C5 Ultra Dual(Android 6.0),华为Y635-TL00(Android 4.4),程序崩溃并显示Native crash at signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)。但是我无法在我的三星Galaxy S6或朋友的设备上重现相同的崩溃情况。我使用的是Unity 5.6.2f1,API级别为16。可能是什么原因导致了这个崩溃?我应该如何尝试解决它? 回溯信息:
native: pc 00000000004db254  /mnt/asec/com.companyname.app-1/lib/libunity.so
native: pc 00000000004ec69c  /mnt/asec/com.companyname.app-1/lib/libunity.so
native: pc 00000000000d9e24  /mnt/asec/com.companyname.app-1/lib/libunity.so
native: pc 00000000000db2d0  /mnt/asec/com.companyname.app-1/lib/libunity.so
native: pc 000000000031a3b0  /mnt/asec/com.companyname.app-1/lib/libunity.so
native: pc 00000000005eea94  /mnt/asec/com.companyname.app-1/lib/libunity.so
native: pc 000000000001e44c  /system/lib/libdvm.so (dvmPlatformInvoke+112)
native: pc 000000000004e91b  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
native: pc 0000000000027860  /system/lib/libdvm.so
native: pc 000000000002be00  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
native: pc 0000000000060a6d  /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+292)
native: pc 0000000000060a97  /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
native: pc 000000000005582b  /system/lib/libdvm.so
native: pc 000000000000cb58  /system/lib/libc.so (__thread_entry+72)
native: pc 000000000000ccd4  /system/lib/libc.so (pthread_create+208)

1
Signal 11 崩溃真的很难调试,但我首先会查看内存使用情况。找出它崩溃的设备是否具有低内存规格,例如少于一 GB,如果是,则可能是纹理等内存错误导致的。 - turnipinrut
@Ingavaras:你在解决问题方面有进展了吗? - narb
1个回答

1
我发现当我使用Application.LoadLevelAdditive()加载许多贴图较重的物体时,会出现这个错误。我通过在需要时启用/禁用对象来解决了这个问题(我会将它们初始化为禁用状态,并稍后启用它们)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接