biotinker / LibreTasks

An updated form of Omnidroid
Apache License 2.0
82 stars 22 forks source link

App crashes when scrolling #194

Open vanitasvitae opened 8 years ago

vanitasvitae commented 8 years ago

Hi! The app crashes on my nexus 5 with CopperheadOS when I try to scroll the event list. Here is a log:

E/InputEventReceiver(23816): Exception dispatching input event. D/AndroidRuntime(23816): Shutting down VM E/AndroidRuntime(23816): FATAL EXCEPTION: main E/AndroidRuntime(23816): Process: libretasks.app, PID: 23816 E/AndroidRuntime(23816): java.lang.IllegalStateException: UIDbHelperStore singleton must be initialized via init() before use! E/AndroidRuntime(23816): at libretasks.app.view.simple.UIDbHelperStore.instance(UIDbHelperStore.java:82) E/AndroidRuntime(23816): at libretasks.app.view.simple.ActivityChooseRootEvent$AdapterEvents.getView(ActivityChooseRootEvent.java:170) E/AndroidRuntime(23816): at android.widget.AbsListView.obtainView(AbsListView.java:2346) E/AndroidRuntime(23816): at android.widget.ListView.makeAndAddView(ListView.java:1876) E/AndroidRuntime(23816): at android.widget.ListView.fillDown(ListView.java:702) E/AndroidRuntime(23816): at android.widget.ListView.fillGap(ListView.java:666) E/AndroidRuntime(23816): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5053) E/AndroidRuntime(23816): at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3448) E/AndroidRuntime(23816): at android.widget.AbsListView.onTouchMove(AbsListView.java:3844) E/AndroidRuntime(23816): at android.widget.AbsListView.onTouchEvent(AbsListView.java:3675) E/AndroidRuntime(23816): at android.view.View.dispatchTouchEvent(View.java:9300) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2547) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2240) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) E/AndroidRuntime(23816): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) E/AndroidRuntime(23816): at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403) E/AndroidRuntime(23816): at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737) E/AndroidRuntime(23816): at android.app.Activity.dispatchTouchEvent(Activity.java:2771) E/AndroidRuntime(23816): at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364) E/AndroidRuntime(23816): at android.view.View.dispatchPointerEvent(View.java:9520) E/AndroidRuntime(23816): at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4230) E/AndroidRuntime(23816): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4096) E/AndroidRuntime(23816): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642) E/AndroidRuntime(23816): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695) E/AndroidRuntime(23816): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661) E/AndroidRuntime(23816): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3787) E/AndroidRuntime(23816): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669) E/AndroidRuntime(23816): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3844) E/AndroidRuntime(23816): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642) E/AndroidRuntime(23816): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695) E/AndroidRuntime(23816): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661) E/AndroidRuntime(23816): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669) E/AndroidRuntime(23816): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642) E/AndroidRuntime(23816): at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5922) E/AndroidRuntime(23816): at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5896) E/AndroidRuntime(23816): at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5857) E/AndroidRuntime(23816): at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6025) E/AndroidRuntime(23816): at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) E/AndroidRuntime(23816): at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) E/AndroidRuntime(23816): at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176) E/AndroidRuntime(23816): at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:5996) E/AndroidRuntime(23816): at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:6048) E/AndroidRuntime(23816): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) E/AndroidRuntime(23816): at android.view.Choreographer.doCallbacks(Cho E/AndroidRuntime(23816): Error reporting crash E/AndroidRuntime(23816): java.lang.RuntimeException: Bad file descriptor E/AndroidRuntime(23816): at android.os.BinderProxy.transactNative(Native Method) E/AndroidRuntime(23816): at android.os.BinderProxy.transact(Binder.java:503) E/AndroidRuntime(23816): at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:4425) E/AndroidRuntime(23816): at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:90) E/AndroidRuntime(23816): at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693) E/AndroidRuntime(23816): at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690) I/Process (23816): Sending signal. PID: 23816 SIG: 9 D/GraphicsStats( 1935): Buffer count: 11 I/WindowState( 1935): WIN DEATH: Window{66ddc44 u0 libretasks.app/libretasks.app.view.simple.ActivityChooseRootEvent} I/ActivityManager( 1935): Process libretasks.app (pid 23816) has died W/ActivityManager( 1935): Scheduling restart of crashed service libretasks.app/.controller.external.attributes.EventMonitoringService in 1000ms W/ActivityManager( 1935): Force removing ActivityRecord{546e98 u0 libretasks.app/.view.simple.ActivityChooseRootEvent t365}: app died, no saved state

biotinker commented 8 years ago

Hi! Thanks for the bug report.

Could you give me some more details on your use of the app? Does the crash happen on a fresh install, or only when you have added rules/actions, or something else? I don't get a crash when scrolling on my test devices.

I'll look into the stacktrace and what the error may be. I forked this app from an old, dead project, so I'm not yet very familiar with a lot of the app backend where it looks like the crash happened.

vanitasvitae commented 8 years ago

It happens to me after fresh install. I start the app and click "create rule". When I try to scroll in the list that opens up, the activity crashes and I end up on the previous activity again.

CopperheadOS is based on AOSP 6. Maybe something changed?

Edit: It seems like you have a uninitialized singleton somewhere. I'd try to call its init function at an earlier time.