h5rcode / BlackBooks

This repository contains the source code for the Black Books Android app.
1 stars 2 forks source link

Crash in the AutoCompleteAdapter #25

Closed h5rcode closed 9 years ago

h5rcode commented 9 years ago

01-23 20:06:30.442 W/dalvikvm(27692): threadid=1: thread exiting with uncaught exception (group=0x4193cda0) 01-23 20:06:30.462 E/com.blackbooks(27692): Uncaught exception. 01-23 20:06:30.462 E/com.blackbooks(27692): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. Make sure your adapter calls notifyDataSetChanged() when its content changes. [in ListView(-1, class android.widget.ListPopupWindow$DropDownListView) with Adapter(class com.blackbooks.adapters.AutoCompleteAdapter)] 01-23 20:06:30.462 E/com.blackbooks(27692): at android.widget.ListView.layoutChildren(ListView.java:1566) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.widget.AbsListView.onLayout(AbsListView.java:2564) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.View.layout(View.java:15749) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.ViewGroup.layout(ViewGroup.java:4880) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.widget.FrameLayout.onLayout(FrameLayout.java:388) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.View.layout(View.java:15749) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.ViewGroup.layout(ViewGroup.java:4880) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2358) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2071) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1256) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6635) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:813) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.Choreographer.doCallbacks(Choreographer.java:613) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.Choreographer.doFrame(Choreographer.java:583) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:799) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.os.Handler.handleCallback(Handler.java:733) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.os.Handler.dispatchMessage(Handler.java:95) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.os.Looper.loop(Looper.java:146) 01-23 20:06:30.462 E/com.blackbooks(27692): at android.app.ActivityThread.main(ActivityThread.java:5593) 01-23 20:06:30.462 E/com.blackbooks(27692): at java.lang.reflect.Method.invokeNative(Native Method) 01-23 20:06:30.462 E/com.blackbooks(27692): at java.lang.reflect.Method.invoke(Method.java:515) 01-23 20:06:30.462 E/com.blackbooks(27692): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 01-23 20:06:30.462 E/com.blackbooks(27692): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 01-23 20:06:30.462 E/com.blackbooks(27692): at dalvik.system.NativeStart.main(Native Method)

h5rcode commented 9 years ago

The problem was apparently in AutoCompleteFilter. The method performFiltering (run in a background thread) was updating the content of the adapter (the attribute "mResult").

Now performFiltering does not update "mResult" anymore, it is set in method publishResults which is executed on the UI thread.