Finding Exception Position

In my application i use uipageviewcontroller,
while navigating between pages, not every time but sometimes
app throw exception and terminates, how can i detect which causes
that exceptions? Why exact java side trace can not be shown?

art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] JNI DETECTED ERROR IN APPLICATION: obj == null
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] in call to CallVoidMethod
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] from int ios.uikit.c.UIKit.UIApplicationMain(int, org.moe.natj.general.ptr.Ptr, java.lang.String, java.lang.String)
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] “main” prio=5 tid=1 Runnable
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] | group=“main” sCount=0 dsCount=0 obj=0x1ed9a0a0 self=0x7b31c600
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] | sysTid=88183 nice=-1 cgrp=default sched=1/31 handle=0x93d1000
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] | state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] | stack=0xbf79d000-0xbf7a5000 stackSize=8MB
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] | held mutexes= “mutator lock”(shared held)
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] at ios.uikit.c.UIKit.UIApplicationMain(Native method)
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456] at org.com.myapp.Main.main(Main.java:41)
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/java_vm_ext.cc:456]
art F 3715 88183 /Volumes/SSD/gh-moe-master/aosp/art/runtime/runtime.cc:450]Runtime aborting…
Aborting thread:
“main” prio=5 tid=1 Native
| group="" sCount=0 dsCount=0 obj=0x1ed9a0a0 self=0x7b31c600
| sysTid=88183 nice=-1 cgrp=default sched=1/31 handle=0x93d1000
| state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
| stack=0xbf79d000-0xbf7a5000 stackSize=8MB
| held mutexes= “abort lock”
at ios.uikit.c.UIKit.UIApplicationMain(Native method)
at org.com.myapp.Main.main(Main.java:41)
Dumping all threads without appropriate locks held: thread list lock mutator lock
All threads:
DALVIK THREADS (7):
“main” prio=5 tid=1 Runnable
| group="" sCount=0 dsCount=0 obj=0x1ed9a0a0 self=0x7b31c600
| sysTid=88183 nice=-1 cgrp=default sched=1/31 handle=0x93d1000
| state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
| stack=0xbf79d000-0xbf7a5000 stackSize=8MB
| held mutexes= “abort lock” “mutator lock”(shared held)
at ios.uikit.c.UIKit.UIApplicationMain(Native method)
at org.com.myapp.Main.main(Main.java:41)

“Signal Catcher” prio=5 tid=2 WaitingInMainSignalCatcherLoop
| group="" sCount=1 dsCount=0 obj=0x1ed9c0a0 self=0x7e316400
| sysTid=88200 nice=-1 cgrp=default sched=1/31 handle=0xb0197000
| state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
| stack=0xb0117000-0xb011f000 stackSize=512KB
| held mutexes=
(no managed stack frames)

“ReferenceQueueDaemon” prio=5 tid=3 Waiting
| group="" sCount=1 dsCount=0 obj=0x1ed9a160 self=0x7bb1ee00
| sysTid=88201 nice=-1 cgrp=default sched=1/31 handle=0xb02a1000
| state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
| stack=0xb0199000-0xb01a1000 stackSize=1056KB
| held mutexes= “a thread wait mutex”
at java.lang.Object.wait!(Native method)

  • waiting on <0x0927a6f1> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
    at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:149)
  • locked <0x0927a6f1> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
    at java.lang.Thread.run(Thread.java:818)

“FinalizerDaemon” prio=5 tid=4 Waiting
| group="" sCount=1 dsCount=0 obj=0x1ed9a1c0 self=0x7bb20800
| sysTid=88202 nice=-1 cgrp=default sched=1/31 handle=0xb03ab000
| state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
| stack=0xb02a3000-0xb02ab000 stackSize=1056KB
| held mutexes= “a thread wait mutex”
at java.lang.Object.wait!(Native method)

  • waiting on <0x0a25b2d6> (a java.lang.ref.ReferenceQueue)
    at java.lang.Object.wait(Object.java:423)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:101)
  • locked <0x0a25b2d6> (a java.lang.ref.ReferenceQueue)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:72)
    at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:189)
    at java.lang.Thread.run(Thread.java:818)

“FinalizerWatchdogDaemon” prio=5 tid=5 Sleeping
| group="" sCount=1 dsCount=0 obj=0x1ed9a220 self=0x7bb20e00
| sysTid=88203 nice=-1 cgrp=default sched=1/31 handle=0xb04b5000
| state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
| stack=0xb03ad000-0xb03b5000 stackSize=1056KB
| held mutexes= “a thread wait mutex”
at java.lang.Thread.sleep!(Native method)

  • sleeping on <0x060e8957> (a java.lang.Object)
    at java.lang.Thread.sleep(Thread.java:1031)
  • locked <0x060e8957> (a java.lang.Object)
    at java.lang.Thread.sleep(Thread.java:985)
    at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:280)
    at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:295)
    at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:237)
    at java.lang.Thread.run(Thread.java:818)

“HeapTaskDaemon” prio=5 tid=6 Blocked
| group="" sCount=1 dsCount=0 obj=0x1ed9a280 self=0x7bb21400
| sysTid=88204 nice=-1 cgrp=default sched=1/31 handle=0xb05bf000
| state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
| stack=0xb04b7000-0xb04bf000 stackSize=1056KB
| held mutexes= “Task processor lock”
at dalvik.system.VMRuntime.runHeapTasks(Native method)

  • waiting to lock an unknown object
    at java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:368)
    at java.lang.Thread.run(Thread.java:818)

“executionTimerThread0” prio=5 tid=7 TimedWaiting
| group="" sCount=1 dsCount=0 obj=0x1eed0ac0 self=0x7db25c00
| sysTid=88222 nice=-1 cgrp=default sched=1/31 handle=0xb074b000
| state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
| stack=0xb0643000-0xb064b000 stackSize=1056KB
| held mutexes= “a thread wait mutex”
at java.lang.Object.wait!(Native method)

  • waiting on <0x02532c44> (a java.lang.Object)
    at java.lang.Thread.parkFor$(Thread.java:1220)
  • locked <0x02532c44> (a java.lang.Object)
    at sun.misc.Unsafe.park(Unsafe.java:299)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2142)
    at java.util.Timer$ExecutionThreadRunnable.run(Timer.java:327)
    at java.lang.Thread.run(Thread.java:818)

Dear kurul,

could you please share a project with us where we can reproduce this issue and a brief description on how to?