google / blockly-android

Blockly for Android
Apache License 2.0
672 stars 209 forks source link

Category tabs without specified colors crash app (NPE) #743

Closed AnmAtAnm closed 5 years ago

AnmAtAnm commented 5 years ago

If a category tab does not have a specified color when the CategoryTabs attempts to tint the category label, a NPE is thrown and crashes the activity/app:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.google.blockly.demo, PID: 3973
    java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
        at com.google.blockly.android.ui.CategoryTabs$CategoryAdapter.onBindViewHolder(CategoryTabs.java:246)
        at com.google.blockly.android.ui.CategoryTabs$CategoryAdapter.onBindViewHolder(CategoryTabs.java:215)
        at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6673)
        at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6714)
        at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5647)
        at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5913)
        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
        at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1559)
        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
        at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
        at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3812)
        at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:3225)

Reproduce by opening the DevTestsActivity.