Android - App runs on install, crashes when it is re-opened - android

When I first install the app onto my device, it works fine. Then, if I close it and re-open it, the app will crash with the below logcat message.
I don't think the first line regarding libwvm.so has anything to do with it, because that appears on install as well, but doesn't cause a crash.
I'm not sure what to do with this message, because as far as I can tell it doesn't point to anything in my code that I can try to fix.
I am following this tutorial to learn developing games with libGDX.
Any help appreciated. Thanks!
02-13 11:01:59.292 13140-13156/? E/WVMExtractor: Failed to open libwvm.so: dlopen failed: library "libwvm.so" not found
02-13 11:02:01.317 13140-13154/? A/libc: Fatal signal 11 (SIGSEGV), code 2, fault addr 0x76a96000 in tid 13154 (GLThread 823)
02-13 11:02:01.424 3254-3254/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
02-13 11:02:01.425 3254-3254/? A/DEBUG: Build fingerprint: 'google/bullhead/bullhead:6.0.1/MMB29Q/2480792:user/release-keys'
02-13 11:02:01.426 3254-3254/? A/DEBUG: Revision: 'rev_1.0'
02-13 11:02:01.426 3254-3254/? A/DEBUG: ABI: 'arm64'
02-13 11:02:01.427 3254-3254/? A/DEBUG: pid: 13140, tid: 13154, name: GLThread 823 >>> com.mypackage.name <<<
02-13 11:02:01.427 3254-3254/? A/DEBUG: signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x76a96000
02-13 11:02:01.462 3254-3254/? A/DEBUG: x0 00000000be39c000 x1 0000000076a96000 x2 00000000000000a0 x3 0000000000000120
02-13 11:02:01.463 3254-3254/? A/DEBUG: x4 0000000000000000 x5 0000000000000000 x6 00000000be39c000 x7 0000000000000000
02-13 11:02:01.463 3254-3254/? A/DEBUG: x8 0000000000000000 x9 0000000000000000 x10 0000000000000120 x11 0000000000000000
02-13 11:02:01.463 3254-3254/? A/DEBUG: x12 0000000000000000 x13 0000007f8b9ad468 x14 0000007f8b9ad458 x15 0000007f8b9ad4b8
02-13 11:02:01.464 3254-3254/? A/DEBUG: x16 0000007f82329148 x17 0000007f900d4140 x18 0000000000000001 x19 0000000076a96120
02-13 11:02:01.464 3254-3254/? A/DEBUG: x20 00000000be39c000 x21 0000000000000001 x22 0000000000000120 x23 0000000000000120
02-13 11:02:01.464 3254-3254/? A/DEBUG: x24 0000000000000120 x25 0000000000000001 x26 0000000000000001 x27 0000000000000120
02-13 11:02:01.464 3254-3254/? A/DEBUG: x28 0000000076a96000 x29 0000007f8b9ace60 x30 0000007f81e57f74
02-13 11:02:01.464 3254-3254/? A/DEBUG: sp 0000007f8b9ace60 pc 0000007f900d4280 pstate 0000000020000000
02-13 11:02:01.468 3254-3254/? A/DEBUG: #00 pc 000000000001c280 /system/lib64/libc.so (memcpy+312)
02-13 11:02:01.469 3254-3254/? A/DEBUG: #01 pc 000000000025df70 /vendor/lib64/egl/libGLESv2_adreno.so (BltDevice::ExecFastCopyBlock(void*, void const*, unsigned int, unsigned int, unsigned int, unsigned int, BltRect const*, BltRect const*, int)+144)
02-13 11:02:01.650 3254-3254/? E/DEBUG: AM write failed: Broken pipe
02-13 11:02:01.675 4413-13173/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 112)
02-13 11:02:01.682 366-366/? E/lowmemorykiller: Error writing /proc/13140/oom_score_adj; errno=22
02-13 11:02:06.360 3321-3321/? E/QCALOG: [MessageQ] ProcessNewMessage: [LOWI-SERVER] unknown deliver target [OS-Agent]
02-13 11:02:32.344 6226-6226/? E/NetworkScheduler.SchedulerReceiver: Invalid parameter app
02-13 11:02:32.344 6226-6226/? E/NetworkScheduler.SchedulerReceiver: Invalid package name : Perhaps you didn't include a PendingIntent in the extras?
02-13 11:02:32.945 7266-7266/? E/clatd: plat_prefix/dns(ipv4only.arpa) status = 7/No address associated with hostname
I don't think this is a logcat filtering issue. I selected "no filter" in the logcat and the message was the same, except for the last few lines which went like this instead of as above:
02-13 12:02:54.902 3254-3254/? E/DEBUG: AM write failed: Broken pipe
02-13 12:02:54.923 4413-17149/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 112)
02-13 12:02:54.928 4413-4459/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 60)
02-13 12:03:22.680 4413-5547/? E/native: do suspend true
02-13 12:03:22.688 6053-6302/? E/NxpTml: _i2c_write() errno : 5
02-13 12:03:22.688 6053-6302/? E/NxpTml: PN54X - Error in I2C Write.....
02-13 12:03:22.689 6053-6304/? E/NxpHal: write error status = 0x1ff
02-13 12:03:22.689 6053-6267/? E/NxpHal: write_unlocked failed - PN54X Maybe in Standby Mode - Retry
Android Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mypackage.name"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/GdxTheme" >
<activity
android:name="com.mypackage.name.AndroidLauncher"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

I think the most likely cause is that the OpenGL context is being released when the game goes into the background.
Lots of OpenGL based games use a class called glSurfaceView to manage the OpenGL surface, and by default, you get these sorts of crashes if you don't very carefully reinitialize all of your OpenGL objects after returning from suspend because they all get invalidated. In Ice Cream Sandwich, a function called setPreserveEGLContextOnPause was added to let you easily request that the OpenGL context is kept alive after your game goes into the background.
After some cursory research (so apologies if this is wrong) I believe libgdx uses it or something similar, but that it might be failing to work because you're not specifying a min or target sdk version in your manifest. Try adding a line like this to your manifest:
<uses-sdk android:targetSdkVersion="19" android:minSdkVersion="14" />
Documentation of the uses-sdk tag is here: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

Related

game crashes after unity splash screen - cannot find stacktrace in logs

Please note: I'm not a professional developer and will probably need more detailed instructions on how to get needed information
I am working on a mobile game, currently called EndlessTD using Unity3d 2022.2.4f1. during testing, it used to work fine on bluestacks and in my Mi9T pro running MIUI 12.5.1 and android 11.
Developer options are active, the phone is connected to my pc via usb and displaying "USB debugging is on".
While it still works without errors in the editor on my windows machine, apparently, I screwed something up and now the game crashes right after the unity splash screen when it should load my scene.
Crash Log:
01-29 02:23:27.465 2748 2796 E CRASH : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-29 02:23:27.465 2748 2796 E CRASH : Version '2022.2.3f1 (55531d7fa82e)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a'
01-29 02:23:27.465 2748 2796 E CRASH : Build fingerprint: 'Xiaomi/raphael_eea/raphael:11/RKQ1.200826.002/V12.5.1.0.RFKEUXM:user/release-keys'
01-29 02:23:27.465 2748 2796 E CRASH : Revision: '0'
01-29 02:23:27.465 2748 2796 E CRASH : ABI: 'arm64'
01-29 02:23:27.465 2748 2796 E CRASH : Timestamp: 2023-01-29 02:23:27.465468704+0100
01-29 02:23:27.465 2748 2796 E CRASH : pid: 2748, tid: 2796, name: UnityMain >>> com.EndlessRageLimited.EndlessTD <<<
01-29 02:23:27.465 2748 2796 E CRASH : uid: 10467
01-29 02:23:27.465 2748 2796 E CRASH : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr --------
01-29 02:23:27.465 2748 2796 E CRASH : Cause: null pointer dereference
01-29 02:23:27.465 2748 2796 E CRASH : x0 0000006ff01b7d30 x1 0000000000000000 x2 0000000000000000 x3 00000070175dcad0
01-29 02:23:27.465 2748 2796 E CRASH : x4 00000000000002ae x5 00000070175dcad0 x6 00000000000003e9 x7 000000000000004d
01-29 02:23:27.465 2748 2796 E CRASH : x8 0000000000000000 x9 8000000000000000 x10 8000000000000000 x11 0000000000000000
01-29 02:23:27.465 2748 2796 E CRASH : x12 0000000000000001 x13 ffffffffffe00000 x14 fffffc00001fffff x15 0000000000000000
01-29 02:23:27.465 2748 2796 E CRASH : x16 0000000000000001 x17 0000000000000000 x18 0000006fd1d7b638 x19 0000006ff01b7d30
01-29 02:23:27.465 2748 2796 E CRASH : x20 0000000000000000 x21 00000070185b1000 x22 0000006fd23111f8 x23 0000000000000000
01-29 02:23:27.465 2748 2796 E CRASH : x24 0000007015202000 x25 0000000000000000 x26 0000007015202000 x27 0000006f21abd610
01-29 02:23:27.465 2748 2796 E CRASH : x28 0000000000000001 x29 00000070151ffdd0
01-29 02:23:27.465 2748 2796 E CRASH : lr 0000007017a330b8 sp 00000070151ffd20 pc 0000000000000000 pst 00000000a0000000
My usual build settings:
Since this is my first time dealing with this, I am quite lost:
I recently upgraded unity from 2022.2.3f1 to 2022.2.4f1 so I tried using 2022.2.3f1 again, but the error persists. Unity editor version doesnt seem to be the issue.
Since the game is already on google play using an internal testing track, I found reports under Testing -> Pre-launch report -> Details -> stability -> Crashes and ANRs.
Sadly, stack traces are "Fatal AndroidRuntime Exception detected." and "Native crash of com.EndlessRageLimited.EndlessTD".
I'm not sure what to do with that information.
So more digging and it seems from the posts on the internet, people usually have a stack trace or backtrace. I dont and I dont understand why.
In the log file, there are multiple messages about not being able to load the debugger:
.android.camer: Not starting debugger since process cannot load the jdwp agent.
Here on StackOverflow, it was recommended to execute adb reverse tcp:8081 tcp:8081
but this didnt change anything.
Another website recommended to enable Wait for debugger in developer options, but this option is greyed out for me.
Other posts on StackOverflow and other pages didnt help me to find a solution either. Did I miss anything?
What I perceive as the relevant output from adb logcat in command prompt is available here. If I interpret it correctly, it starts when the app launches.
I now managed to get a stacktrace using Run device and Build to device, hitting Patch and Run with Development Build, Autoconnect Profiler, Deep Profiling Support and Script debugging enabled.
The stack trace is available here
Sadly, I cannot find any specific information on why it crashes.
After stubeling on the stacktrace utility and adding symbols for il2cpp and mono, I end up with this resolved stacktrace here .
Would somebody please have some tips on what I can do to get more information on why the game crashes? Since the last test on a phone I got like 30 commits and rolling back would mean reapplying several days of work :S
Thanks!!!
after going back and forth in my git history, I decided to git clean -fdx to see if something on my computers side got messed up. miraculously this did indeed "fix" the issue.
While I still don't know what caused the problem, at least I dipped my feet into debugging android games using Unity and learned something new :)

libc.so crash on Android 12 devices

I found a strange crash message about the system so library on the APM platform, and it only happens on Android 12 devices.
Some of my app build gradle config:
compileSdkVersion 31
buildToolsVersion '31.0.0'
defaultConfig {
minSdkVersion 24
targetSdkVersion 26
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
And below is the crash message:
Process Name: 'xxx'
Thread Name: 'ReferenceQueueD'
pid: 29245, tid: 29254 >>> com.xxx.xxxx <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00fffffefffffff0
x0 00000070a0f4a6c0 x1 00ffffff00000000 x2 0000000000000000 x3 0000000000000000
x4 0000000000000010 x5 0000006ded2d4340 x6 0003522200034d82 x7 00034dcc00035472
x8 02ffffff00000000 x9 02ffffff00000000 x10 00000000ecc30e2f x11 0000000000000000
x12 0000000000000019 x13 000009f3ba83fe32 x14 00106e6d9f58a32d x15 0000000034155555
x16 00000070803f9248 x17 00000070a0eb2c00 x18 0000006d758cc000 x19 00ffffff00000000
x20 0000000000000000 x21 00000070a0f4a6c0 x22 0000000000000000 x23 0000000014f28e78
x24 000000006f7aaba0 x25 0000000014f28eb8 x26 0000000000000000 x27 0000006de9217000
x28 0000000000000043 x29 0000006d7631b6e0 x30 00000070806b0cd0
sp 0000006d7631b6d0 pc 00000070a0eb8668 pstate 0000000060001000
v0 0000518400006498000050f0000035e9 v1 000030ff000055ff000052d100004c9a
v2 00000000001c30000000006dd3dca000 v3 00000000000001000000000000000100
v4 00000000000221c00000000000022180 v5 0000221c000022180000221400002210
v6 00000000000000000000000000000000 v7 00000000000000008060180680601806
v8 00000000000000000000000000000000 v9 00000000000000000000000000000000
v10 00000000000000000000000000000000 v11 00000000000000000000000000000000
v12 00000000000000000000000000000000 v13 00000000000000000000000000000000
v14 00000000000000000000000000000000 v15 00000000000000000000000000000000
v16 c0300c03c0300c03c0300c03c0300c03 v17 00000000000800000000080001000404
v18 00000000000000000000080000000000 v19 0000000000000000be00000000000000
v20 00000000000000003ff0002b8b263fc3 v21 00000000000001480000000000000001
v22 00000000000000380000000000000001 v23 00000000000002000000000000000001
v24 00000000000000800000000000000001 v25 00000000000001100000000000000001
v26 00000000000001800000000000000001 v27 00000000000000b80000000000000001
v28 00000000000000000000000300000001 v29 000000000000000c0000000000000002
v30 00000000000000080000000000000002 v31 006d005f00790061006c00650064005f
fpsr 00000010 fpcr 00000000
#00 pc 0000000000006668 /apex/com.android.runtime/lib64/bionic/libc.so (_ZN5scudo9AllocatorINS_13AndroidConfigEXadL_Z21scudo_malloc_postinitEEE10deallocateEPvNS_5Chunk6OriginEmm+104)
#01 pc 0000000000121ccc /apex/com.android.i18n/lib64/libicui18n.so (_ZN6icu_6812RegexPattern3zapEv+216)
--- --- --- ---
This crash has not yet been reproduced on my test devices.It has been bothering me for a long time, I can't find relevant information on Google, and I am very eager for any relevant help.
The problem is because it tried to access an illegal memory address (address 00fffffefffffff0). It's illegal because that address isn't mapped to a valid space in virtual memory. It's occurring in some memory management code- notice the function name says malloc_postinit (malloc is the C function to request memory) dealocateChunk.
So either the C standard library has a bug in it (unlikely but possible), or somehow the memory of the allocation table got corrupted. Which can happen if C code overwrites its bounds or if an already deallocated chunk of memory is written to by mistake. Or a few hardware causes (RAM failure, cosmic rays, etc). Unless you can reliably reproduce it, you're not going to solve it. If you can reproduce it, try to figure out what the corrupted memory was holding and look for illegal access to it. A memory watch would work for that. But really these kinds of problems are incredibly hard to track, especially when not writing C or C++ yourself, as the illegal access is likely occurring far from your code.

Render process crashing webview Android Pie (9)

Trying to load the HTML files from assets folder, app working fine up to Android v8.1 and getting crash in Android Pie (9) devices.
Seems like WebView render process getting crash according the debug logs, finding the ways to resolve this issue.
Please help and suggest...Thanks in advance.
From the logcat:
2019-09-19 15:37:13.967 3313-3342/? E/libc: failed to connect to tombstoned: Operation not permitted
2019-09-19 15:37:14.100 4499-4499/? E/audit: type=1701 audit(1568887634.098:9979): auid=4294967295 uid=99281 gid=99281 ses=4294967295 subj=u:r:isolated_app:s0:c25,c257,c512,c768 pid=3313 comm="CrRendererMain" exe="/system/bin/app_process32" sig=5
2019-09-19 15:37:14.129 4924-4978/? E/libprocessgroup: Error encountered killing process cgroup uid 99281 pid 3313: No such file or directory
2019-09-19 15:37:14.147 3131-3131/? E/chromium: [ERROR:aw_browser_terminator.cc(125)] Renderer process (3313) crash detected (code 5).
2019-09-19 15:37:14.148 3131-3131/? A/chromium: [FATAL:crashpad_client_linux.cc(494)] Render process (3313)'s crash wasn't handled by all associated webviews, triggering application crash.
--------- beginning of crash
2019-09-19 15:37:14.149 3131-3131/? A/libc: Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x726bc83a50 in tid 3131 (s.ultrasyncplus), pid 3131 (s.ultrasyncplus)
2019-09-19 15:37:14.227 3410-3410/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2019-09-19 15:37:14.227 3410-3410/? A/DEBUG: Build fingerprint: 'samsung/crownltexx/crownlte:9/PPR1.180610.011/N960FXXS3CSFC:user/release-keys'
2019-09-19 15:37:14.227 3410-3410/? A/DEBUG: Revision: '28'
2019-09-19 15:37:14.227 3410-3410/? A/DEBUG: ABI: 'arm64'
2019-09-19 15:37:14.227 3410-3410/? A/DEBUG: pid: 3131, tid: 3131, name: s.ultrasyncplus >>> com.uhssystems.ultrasyncplus <<<
2019-09-19 15:37:14.227 3410-3410/? A/DEBUG: signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x726bc83a50
2019-09-19 15:37:14.227 3410-3410/? A/DEBUG: Abort message: '[FATAL:crashpad_client_linux.cc(494)] Render process (3313)'s crash wasn't handled by all associated webviews, triggering application crash.
method 1 :This method works for all domains also with Android 9. Add this property to your Manifest like this:
<application
...
android:usesCleartextTraffic="true"
...>
</application>
method 2.1 : Add #xml/network_security_config into your resources:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">www.rcub.ac.in/</domain>
</domain-config>
</network-security-config>
2.2 : Add this security config to your Manifest like this:
<application
...
android:networkSecurityConfig="#xml/network_security_config"
...>
...
</application>
You can read more in https://developer.android.com/training/articles/security-config#CleartextTrafficPermitted

Error signal 11 (SIGSEGV), code 2 in a Unity App

I'm working on and Android game in Unity 2018.1.0f2. Some builds of the App lead to a crash. The log contains then the following:
05-20 18:52:17.993: A/libc(26270): Fatal signal 11 (SIGSEGV), code 2, fault addr 0xef97cffc in tid 26284 (UnityMain)
05-20 18:52:17.993: A/libc(26270): [ 05-20 18:52:17.993 3095: 3095 W/ ]
05-20 18:52:17.993: A/libc(26270): debuggerd: handling request: pid=26270 uid=10367 gid=10367 tid=26284
05-20 18:52:18.094: A/DEBUG(26286): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-20 18:52:18.094: A/DEBUG(26286): Build fingerprint: 'samsung/heroltexx/herolte:7.0/NRD90M/G930FXXS2DRDI:user/release-keys'
05-20 18:52:18.094: A/DEBUG(26286): Revision: '8'
05-20 18:52:18.094: A/DEBUG(26286): ABI: 'arm'
05-20 18:52:18.095: A/DEBUG(26286): pid: 26270, tid: 26284, name: UnityMain >>> de.zoomapp.zoom <<<
05-20 18:52:18.095: A/DEBUG(26286): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xef97cffc
05-20 18:52:18.095: A/DEBUG(26286): r0 e9c93908 r1 f0f805c0 r2 e42c70e0 r3 00000008
05-20 18:52:18.095: A/DEBUG(26286): r4 00000000 r5 e42c70e0 r6 00000010 r7 00000008
05-20 18:52:18.095: A/DEBUG(26286): r8 e42c7000 r9 e9c93908 sl f0f805c0 fp 00000000
05-20 18:52:18.095: A/DEBUG(26286): ip f1200948 sp ef97d020 lr f11e6bc1 pc f11cbf00 cpsr 60070030
05-20 18:52:18.098: A/DEBUG(26286): backtrace:
05-20 18:52:18.098: A/DEBUG(26286): #00 pc 00053f00 /system/lib/libc.so (arena_purge_to_limit+1151)
05-20 18:52:18.098: A/DEBUG(26286): #01 pc 00064095 /system/lib/libc.so (imemalign+428)
05-20 18:52:18.098: A/DEBUG(26286): #02 pc 0000002f <unknown>
05-20 18:52:19.028: E/audit(4563): type=1701 audit(1526835139.011:7135): auid=4294967295 uid=10367 gid=10367 ses=4294967295 subj=u:r:untrusted_app:s0:c512,c768 pid=26284 comm="UnityMain" exe="/system/bin/app_process32" sig=11
05-20 18:52:19.054: E/lowmemorykiller(3180): Error writing /proc/26270/oom_score_adj; errno=22
05-20 18:52:19.059: E/InputDispatcher(4902): channel ~ Channel is unrecoverably broken and will be disposed!
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
As I said, I don't get this problem every time, only in some builds. The crash occurs even before the Unity splash screen is shown. It seems like none of my scripts is called (not even Awake()) before it crashes. Also it only occured in the release build which I wanted to upload into the Google Play Store. This release build is splitted into APK and OBB file by Unity, so maybe there is some kind of problem? I don't know if there is much I can do to avoid this, as I don't see how my code or scene might lead to this error.
Maybe someone saw this kind of error before or even had some similiar problem and can give me a hint on how to fix this.
Thank you guys.
Regards, Michael
Any crash inside malloc, realloc, free, or memalign is a 99.99% indication that you have heap corruption (which is the result of overflowing a heap-allocated buffer, freeing unallocated memory, freeing memory twice, etc. etc.)
I don't get this problem every time, only in some builds
Yes: these are all quite characteristic of heap corruption problems.
I don't see how my code or scene might lead to this error.
Unfortunately, heap corruption errors are often very hard to debug without tool support.
On Linux and Mac OSX, you could use valgrind or (better) Address Sanitizer. Looks like the Address Sanitizer is available on Android as well.

App crashes with SQLiteConstraintException but I am not using SQLite

Apologies for this vague question. My app crashes due to SQLite exception - SQLiteConstraintException. I am using Realm but not SQLite in my project. By looking at the logs I could not understand what might be causing this.
It would be very helpful if you could shed some light on what it can be.
UPDATE: This issue is only occurring on my Samsung Galaxy S6. I run my app on other Android devices including a different Samsung Galaxy S6 and it works fine.
Not found why though.(This update is just to help others facing similar issue)
here are my logs
04-03 11:35:29.425 5343-5411/? E/ContactsProvider_EventLog: Flush buffer to file cnt : 1 size : 1Kb duration : 2ms lastUpdatedAfter : 60140 ms mFlush_time_threasold : 2000 mCurrentSize : 795
04-03 11:35:40.980 3643-4317/? E/Watchdog: !#Sync 1309 [2018-04-03 11:35:40.980]
04-03 11:35:53.033 3643-4392/? E/ActivityManager: applyOptionsLocked: pendingOptions.getStartX()=39pendingOptions.getStartY()=748
04-03 11:35:53.193 3643-15410/? E/SensorService: getSensorList a sensor (MAX86900) without holding its required permission: com.samsung.permission.SSENSOR
04-03 11:35:53.193 3643-15410/? E/SensorService: getSensorList a sensor (HRM Ambient Light Canceling) without holding its required permission: com.samsung.permission.HRM_EXT
04-03 11:35:53.193 3643-15410/? E/SensorService: getSensorList a sensor (HRMLED IR) without holding its required permission: android.permission.BODY_SENSORS
04-03 11:35:53.193 3643-15410/? E/SensorService: getSensorList a sensor (HRMLED RED) without holding its required permission: android.permission.BODY_SENSORS
04-03 11:35:53.193 3643-15410/? E/SensorService: getSensorList a sensor (HRM Proximity detecting) without holding its required permission: com.samsung.permission.HRM_EXT
04-03 11:35:53.193 3643-15410/? E/SensorService: getSensorList a sensor (HRM Sensor) without holding its required permission: com.samsung.permission.SSENSOR
04-03 11:35:53.193 3643-15410/? E/SensorService: getSensorList a sensor (HeartRate Sensor) without holding its required permission: android.permission.BODY_SENSORS
04-03 11:35:53.193 3643-15410/? E/SensorService: getSensorList a sensor (Sensor Diagnostic Monitor) without holding its required permission: com.samsung.permission.SSENSOR
04-03 11:35:54.392 3132-3132/? E/OMXNodeInstance: getConfig(c3c0240:Exynos.AVC.Encoder, ConfigAndroidIntraRefresh(0x6f60000a)) ERROR: UnsupportedIndex(0x8000101a)
04-03 11:35:55.011 3643-15413/? E/InputMethodManagerService: Perflock object null
04-03 11:35:55.031 20342-20342/? E/KeyboardInfoUtils: getInstance start
04-03 11:35:55.031 20342-20342/? E/KeyboardInfoUtils: sendSIPInformation state:6 isAbstractKeyboardView : true
04-03 11:35:55.032 20342-3743/? E/KeyboardInfoUtils: sending null keyboardInfo as SIP is closed
04-03 11:35:57.154 3325-3325/com.XXXX.onboarding.t3st.dev E/BoostFramework: BoostFramework() : Exception_1 = java.lang.ClassNotFoundException: Didn't find class "com.qualcomm.qti.Performance" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib64, /vendor/lib64]]
04-03 11:35:57.229 20342-3760/? E/SKBD: updateShiftState() : 2
04-03 11:36:04.048 5061-3847/? E/SQLiteCastStore: Skip saving CastDeviceInfo: "Nearby device" (__cast_nearby___V_6178185b-e5e2-4698-9522-a98bfe27e0b3)
04-03 11:36:04.054 5061-3847/? E/SQLiteDatabase: Error inserting is_responding_to_probe=1 last_probed_timestamp_millis=1522750899426 device_id=e895d0b9e85682899f45a2bdb0d8457a probing_error_code=0 number_of_probed_times=0 network_id=null
android.database.sqlite.SQLiteConstraintException: NOT NULL constraint failed: ProbedNetwork.network_id (code 1299)
#################################################################
Error Code : 1299 (SQLITE_CONSTRAINT_NOTNULL)
Caused By : Abort due to constraint violation.
(NOT NULL constraint failed: ProbedNetwork.network_id (code 1299))
#################################################################
at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:865)
at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1862)
at android.database.sqlite.SQLiteDatabase.replace(SQLiteDatabase.java:1778)
at lda.b(com.google.android.gms#12221440#12.2.21 (440-188803320):30)
at lcw.b(com.google.android.gms#12221440#12.2.21 (440-188803320):31)
at lbv.run(Unknown Source)
at njd.call(com.google.android.gms#12221440#12.2.21 (440-188803320):2)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at nil.run(com.google.android.gms#12221440#12.2.21 (440-188803320):1)
at njk.run(com.google.android.gms#12221440#12.2.21 (440-188803320):26)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at npg.run(com.google.android.gms#12221440#12.2.21 (440-188803320))
at java.lang.Thread.run(Thread.java:762)
04-03 11:36:04.054 5061-3847/? E/SQLiteCastStore: Unable to insert probedNetwork: CastProbedNetwork. Network ID: null, isDeviceRespondingToProbe: true, lastProbedTimestampMillis: 1522750899426, probingErrorCode: 0, numberOfProbedTimes: 0.
04-03 11:36:04.057 5061-3847/? E/SQLiteDatabase: Error inserting is_responding_to_probe=1 last_probed_timestamp_millis=1522751620475 device_id=69c4a49c55feb8e888d4fa20bb53d4a3 probing_error_code=0 number_of_probed_times=0 network_id=null
android.database.sqlite.SQLiteConstraintException: NOT NULL constraint failed: ProbedNetwork.network_id (code 1299)
#################################################################
Error Code : 1299 (SQLITE_CONSTRAINT_NOTNULL)
Caused By : Abort due to constraint violation.
(NOT NULL constraint failed: ProbedNetwork.network_id (code 1299))
#################################################################
at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:865)
at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1862)
at android.database.sqlite.SQLiteDatabase.replace(SQLiteDatabase.java:1778)
at lda.b(com.google.android.gms#12221440#12.2.21 (440-188803320):30)
at lcw.b(com.google.android.gms#12221440#12.2.21 (440-188803320):31)
at lbv.run(Unknown Source)
at njd.call(com.google.android.gms#12221440#12.2.21 (440-188803320):2)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at nil.run(com.google.android.gms#12221440#12.2.21 (440-188803320):1)
at njk.run(com.google.android.gms#12221440#12.2.21 (440-188803320):26)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at npg.run(com.google.android.gms#12221440#12.2.21 (440-188803320))
at java.lang.Thread.run(Thread.java:762)
04-03 11:36:04.058 5061-3847/? E/SQLiteCastStore: Unable to insert probedNetwork: CastProbedNetwork. Network ID: null, isDeviceRespondingToProbe: true, lastProbedTimestampMillis: 1522751620475, probingErrorCode: 0, numberOfProbedTimes: 0.
04-03 11:36:04.058 5061-3847/? E/SQLiteCastStore: Skip saving CastDeviceInfo: "Nearby device" (__cast_nearby___V_0d078fcb-70a1-48bf-9f36-3c936aafdab9)
04-03 11:36:04.061 5061-3847/? E/SQLiteDatabase: Error inserting is_responding_to_probe=0 last_probed_timestamp_millis=1522737046620 device_id=65db08770005e75584d7a699e13bbda1 probing_error_code=2 number_of_probed_times=1 network_id=null
android.database.sqlite.SQLiteConstraintException: NOT NULL constraint failed: ProbedNetwork.network_id (code 1299)
#################################################################
Error Code : 1299 (SQLITE_CONSTRAINT_NOTNULL)
Caused By : Abort due to constraint violation.
(NOT NULL constraint failed: ProbedNetwork.network_id (code 1299))
#################################################################
at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:865)
at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1862)
at android.database.sqlite.SQLiteDatabase.replace(SQLiteDatabase.java:1778)
at lda.b(com.google.android.gms#12221440#12.2.21 (440-188803320):30)
at lcw.b(com.google.android.gms#12221440#12.2.21 (440-188803320):31)
at lbv.run(Unknown Source)
at njd.call(com.google.android.gms#12221440#12.2.21 (440-188803320):2)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at nil.run(com.google.android.gms#12221440#12.2.21 (440-188803320):1)
at njk.run(com.google.android.gms#12221440#12.2.21 (440-188803320):26)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at npg.run(com.google.android.gms#12221440#12.2.21 (440-188803320))
at java.lang.Thread.run(Thread.java:762)
04-03 11:36:04.061 5061-3847/? E/SQLiteCastStore: Unable to insert probedNetwork: CastProbedNetwork. Network ID: null, isDeviceRespondingToProbe: false, lastProbedTimestampMillis: 1522737046620, probingErrorCode: 2, numberOfProbedTimes: 1.
04-03 11:36:08.582 3643-3656/? E/InputMethodManagerService: Perflock object null
04-03 11:36:08.669 20342-20342/? E/KeyboardInfoUtils: getInstance start
04-03 11:36:08.669 20342-20342/? E/KeyboardInfoUtils: sendSIPInformation state:6 isAbstractKeyboardView : true
04-03 11:36:08.669 20342-3839/? E/KeyboardInfoUtils: sending null keyboardInfo as SIP is closed
04-03 11:36:10.046 20342-3853/? E/SKBD: updateShiftState() : 2
04-03 11:36:10.988 3643-4317/? E/Watchdog: !#Sync 1310 [2018-04-03 11:36:10.988]
04-03 11:36:11.486 3643-7478/? E/InputMethodManagerService: Perflock object null
04-03 11:36:11.585 20342-20342/? E/KeyboardInfoUtils: getInstance start
04-03 11:36:11.585 20342-20342/? E/KeyboardInfoUtils: sendSIPInformation state:6 isAbstractKeyboardView : true
04-03 11:36:11.585 20342-3868/? E/KeyboardInfoUtils: sending null keyboardInfo as SIP is closed
04-03 11:36:25.404 3132-3725/? E/Exynos_OSAL_Android: [Exynos_OSAL_LockMetaData]: Failed to Exynos_OSAL_GetInfoFromMetaData (err:0x80001005)
04-03 11:36:25.405 3132-3719/? E/Exynos_OSAL_Android: [Exynos_OSAL_UnlockMetaData]: Failed to Exynos_OSAL_GetInfoFromMetaData (err:0x80001005)
04-03 11:36:25.411 3132-3132/? E/BufferQueueProducer: [GraphicBufferSource] dequeueBuffer: BufferQueue has been abandoned
[ 04-03 11:36:25.412 3325: 3615 D/ ]
NULL == surf->write_back_color_buffer
04-03 11:36:25.412 3325-3615/com.XXXX.onboarding.t3st.dev E/OpenGLRenderer: GL error: Out of memory!
04-03 11:36:25.412 3325-3615/com.XXXX.onboarding.t3st.dev A/OpenGLRenderer: GL errors! frameworks/base/libs/hwui/renderthread/CanvasContext.cpp:544
04-03 11:36:25.613 3325-3615/com.XXXX.onboarding.t3st.dev A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 3615 (RenderThread)
[ 04-03 11:36:25.613 3014: 3014 W/ ]
debuggerd: handling request: pid=3325 uid=10892 gid=10892 tid=3615
04-03 11:36:25.622 3021-3021/? E/audit: type=1400 audit(1522751785.616:4482): avc: denied { search } for pid=3966 comm="debuggerd64" name="com.XXXX.onboarding.t3st.dev" dev="sda18" ino=592097 scontext=u:r:debuggerd:s0 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 SEPF_SECMOBILE_7.0_0009
04-03 11:36:25.690 3966-3966/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-03 11:36:25.690 3966-3966/? A/DEBUG: Build fingerprint: 'samsung/zerofltexx/zeroflte:7.0/NRD90M/G920FXXS5ERB6:user/release-keys'
04-03 11:36:25.690 3966-3966/? A/DEBUG: Revision: '11'
04-03 11:36:25.690 3966-3966/? A/DEBUG: ABI: 'arm64'
04-03 11:36:25.690 3966-3966/? A/DEBUG: pid: 3325, tid: 3615, name: RenderThread >>> com.XXXX.onboarding.t3st.dev <<<
04-03 11:36:25.690 3966-3966/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
04-03 11:36:25.693 3966-3966/? A/DEBUG: Abort message: 'GL errors! frameworks/base/libs/hwui/renderthread/CanvasContext.cpp:544'
04-03 11:36:25.693 3966-3966/? A/DEBUG: x0 0000000000000000 x1 0000000000000e1f x2 0000000000000006 x3 0000000000000008
04-03 11:36:25.693 3966-3966/? A/DEBUG: x4 0000000000000021 x5 0000000000000000 x6 0000007157f08000 x7 0000000000000000
04-03 11:36:25.693 3966-3966/? A/DEBUG: x8 0000000000000083 x9 ffffffffffffffdf x10 0000000000000000 x11 0000000000000001
04-03 11:36:25.693 3966-3966/? A/DEBUG: x12 ffffffffffffffff x13 0000000000000000 x14 0000000000000000 x15 0018937837e3eceb
04-03 11:36:25.693 3966-3966/? A/DEBUG: x16 00000071554c9ee0 x17 00000071554735ac x18 000000000000f000 x19 00000071329d74f8
04-03 11:36:25.693 3966-3966/? A/DEBUG: x20 0000000000000006 x21 00000071329d7450 x22 000000000000000b x23 00000071552d8030
04-03 11:36:25.693 3966-3966/? A/DEBUG: x24 00000071332126e0 x25 00000071537d2b20 x26 000000712d956e10 x27 00000071537d2b38
04-03 11:36:25.693 3966-3966/? A/DEBUG: x28 7fffffffffffffff x29 00000071329d66a0 x30 0000007155470a54
04-03 11:36:25.693 3966-3966/? A/DEBUG: sp 00000071329d6680 pc 00000071554735b4 pstate 0000000060000000
04-03 11:36:25.697 3966-3966/? A/DEBUG: backtrace:
04-03 11:36:25.697 3966-3966/? A/DEBUG: #00 pc 000000000006b5b4 /system/lib64/libc.so (tgkill+8)
04-03 11:36:25.697 3966-3966/? A/DEBUG: #01 pc 0000000000068a50 /system/lib64/libc.so (pthread_kill+64)
04-03 11:36:25.697 3966-3966/? A/DEBUG: #02 pc 0000000000023f68 /system/lib64/libc.so (raise+24)
04-03 11:36:25.697 3966-3966/? A/DEBUG: #03 pc 000000000001c9ec /system/lib64/libc.so (abort+52)
04-03 11:36:25.697 3966-3966/? A/DEBUG: #04 pc 00000000000112ec /system/lib64/libcutils.so (__android_log_assert+232)
04-03 11:36:25.697 3966-3966/? A/DEBUG: #05 pc 0000000000033e18 /system/lib64/libhwui.so
04-03 11:36:25.697 3966-3966/? A/DEBUG: #06 pc 000000000003454c /system/lib64/libhwui.so
04-03 11:36:25.697 3966-3966/? A/DEBUG: #07 pc 000000000003b980 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread22dispatchFrameCallbacksEv+212)
04-03 11:36:25.697 3966-3966/? A/DEBUG: #08 pc 000000000003bb5c /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+148)
04-03 11:36:25.697 3966-3966/? A/DEBUG: #09 pc 0000000000012488 /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+272)
04-03 11:36:25.698 3966-3966/? A/DEBUG: #10 pc 00000000000a4d40 /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
04-03 11:36:25.698 3966-3966/? A/DEBUG: #11 pc 0000000000068258 /system/lib64/libc.so (_ZL15__pthread_startPv+196)
04-03 11:36:25.698 3966-3966/? A/DEBUG: #12 pc 000000000001dc00 /system/lib64/libc.so (__start_thread+16)
04-03 11:36:28.774 3993-3993/? E/Zygote: v2
04-03 11:36:28.778 3993-3993/? E/Zygote: accessInfo : 0
04-03 11:36:29.563 5343-5411/? E/ContactsProvider_EventLog: Flush buffer to file cnt : 1 size : 1Kb duration : 3ms lastUpdatedAfter : 60138 ms mFlush_time_threasold : 2000 mCurrentSize : 795
04-03 11:36:41.000 3643-4317/? E/Watchdog: !#Sync 1311 [2018-04-03 11:36:41.000]
Your real problem is E/OpenGLRenderer: GL error: Out of memory! that then leads to the FATAL error i.e. crash.
The sqlite stacktrace is from Google Play Services and is not from a fatal crash, just an exception logged with error log level.

Categories

Resources