evrencoskun / TableView

TableView is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells.
MIT License
3.14k stars 459 forks source link

Using hidecolumn method crashing app #300

Closed vipin-singh1 closed 4 years ago

vipin-singh1 commented 4 years ago

I am trying to hide a particular column at a particular index. For that I am using mTableView.hideColumn(0) but it is crashing with NullPointerException. Same thing with hiderow works fine but hidecolumn doesn't. How to hide a particular column from tableview?

MGaetan89 commented 4 years ago

Can you share the full stacktrace that you get when calling hideColumn? Which version of the library are you using?

vipin-singh1 commented 4 years ago
2020-03-30 11:55:30.119 8381-8381/? I/tableviewsampl: Not late-enabling -Xcheck:jni (already on)
2020-03-30 11:55:30.145 8381-8381/? W/tableviewsampl: Unexpected CPU variant for X86 using defaults: x86
2020-03-30 11:55:30.337 8381-8381/com.evrencoskun.tableviewsample W/tableviewsampl: Accessing hidden method Landroid/graphics/drawable/Drawable;->getOpticalInsets()Landroid/graphics/Insets; (light greylist, linking)
2020-03-30 11:55:30.337 8381-8381/com.evrencoskun.tableviewsample W/tableviewsampl: Accessing hidden field Landroid/graphics/Insets;->left:I (light greylist, linking)
2020-03-30 11:55:30.337 8381-8381/com.evrencoskun.tableviewsample W/tableviewsampl: Accessing hidden field Landroid/graphics/Insets;->right:I (light greylist, linking)
2020-03-30 11:55:30.337 8381-8381/com.evrencoskun.tableviewsample W/tableviewsampl: Accessing hidden field Landroid/graphics/Insets;->top:I (light greylist, linking)
2020-03-30 11:55:30.337 8381-8381/com.evrencoskun.tableviewsample W/tableviewsampl: Accessing hidden field Landroid/graphics/Insets;->bottom:I (light greylist, linking)
2020-03-30 11:55:30.368 8381-8381/com.evrencoskun.tableviewsample W/tableviewsampl: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2020-03-30 11:55:30.368 8381-8381/com.evrencoskun.tableviewsample W/tableviewsampl: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2020-03-30 11:55:30.409 8381-8381/com.evrencoskun.tableviewsample W/tableviewsampl: Accessing hidden method Landroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic; (light greylist, linking)
2020-03-30 11:55:30.419 8381-8381/com.evrencoskun.tableviewsample W/tableviewsampl: Accessing hidden method Landroid/widget/PopupWindow;->setEpicenterBounds(Landroid/graphics/Rect;)V (light greylist, linking)
2020-03-30 11:55:30.420 8381-8381/com.evrencoskun.tableviewsample W/tableviewsampl: Accessing hidden method Landroid/widget/PopupWindow;->setClipToScreenEnabled(Z)V (light greylist, reflection)
2020-03-30 11:55:33.523 8381-8381/com.evrencoskun.tableviewsample D/AndroidRuntime: Shutting down VM

    --------- beginning of crash
2020-03-30 11:55:33.524 8381-8381/com.evrencoskun.tableviewsample E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.evrencoskun.tableviewsample, PID: 8381
    java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.recyclerview.widget.RecyclerView$Adapter com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerView.getAdapter()' on a null object reference
        at com.evrencoskun.tableview.adapter.recyclerview.CellRecyclerViewAdapter.removeColumnItems(CellRecyclerViewAdapter.java:230)
        at com.evrencoskun.tableview.adapter.AbstractTableAdapter.removeColumn(AbstractTableAdapter.java:293)
        at com.evrencoskun.tableview.handler.VisibilityHandler.hideColumn(VisibilityHandler.java:107)
        at com.evrencoskun.tableview.TableView.hideColumn(TableView.java:564)
        at com.evrencoskun.tableviewsample.MainFragment.onCreateView(MainFragment.java:112)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
        at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
        at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2663)
        at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2613)
        at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:246)
        at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:542)
        at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391)
        at android.app.Activity.performStart(Activity.java:7157)
        at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2937)
        at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
        at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2020-03-30 11:55:33.535 8381-8381/com.evrencoskun.tableviewsample I/Process: Sending signal. PID: 8381 SIG: 9
vipin-singh1 commented 4 years ago

I am using library version 0.8.9 and added the hidecolumn method in the sample application.

MGaetan89 commented 4 years ago

Thanks. In master the stacktrace is a bit different, but I was able to reproduce the issue. I'll submit a fix soon.

MGaetan89 commented 4 years ago

I proposed a fix in #301

vipin-singh1 commented 4 years ago

Thank you, will check it.