Edgar
Edgar

Reputation: 1

Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)

I am developing new and I am reading JSON file from asset folder but I am getting the following exception

java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference
    at yodgorbek.komilov.runtastictask1.CustomAdapter.getView(CustomAdapter.kt:45)
    at android.widget.AbsListView.obtainView(AbsListView.java:2365)
    at android.widget.ListView.makeAndAddView(ListView.java:2052)
    at android.widget.ListView.fillDown(ListView.java:786)
    at android.widget.ListView.fillFromTop(ListView.java:847)
    at android.widget.ListView.layoutChildren(ListView.java:1826)
    at android.widget.AbsListView.onLayout(AbsListView.java:2164)
    at android.view.View.layout(View.java:19828)
    at android.view.ViewGroup.layout(ViewGroup.java:6154)
    at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1915)
    at android.view.View.layout(View.java:19828)
    at android.view.ViewGroup.layout(ViewGroup.java:6154)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:19828)
    at android.view.ViewGroup.layout(ViewGroup.java:6154)
    at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:446)
    at android.view.View.layout(View.java:19828)
    at android.view.ViewGroup.layout(ViewGroup.java:6154)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:19828)
    at android.view.ViewGroup.layout(ViewGroup.java:6154)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
    at android.view.View.layout(View.java:19828)
    at android.view.ViewGroup.layout(ViewGroup.java:6154)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at com.android.internal.policy.DecorView.onLayout(DecorView.java:765)
    at android.view.View.layout(View.java:19828)
    at android.view.ViewGroup.layout(ViewGroup.java:6154)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2643)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2348)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1482)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7124)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1008)
    at android.view.Choreographer.doCallbacks(Choreographer.java:804)
    at android.view.Choreographer.doFrame(Choreographer.java:732)
    at android.view.Choreographer$FrameHandler.handleMessage(Choreographer.java:907)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:176)
    at android.app.ActivityThread.main(ActivityThread.java:6662)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

below my code to gist

Upvotes: 0

Views: 646

Answers (2)

Amit Tiwary
Amit Tiwary

Reputation: 797

You are not using correct key

data class Group(
@SerializedName("group_id")
val group_id: Int,

@SerializedName("group_name")
val group_name: String,

@SerializedName("data")
val members: List<Member>)

According to your json schema it should be

data class Group(
@SerializedName("group_id")
val group_id: Int,

@SerializedName("group_name")
val group_name: String,

@SerializedName("members")
val members: List<Member>)

Upvotes: 0

Furqan Khan
Furqan Khan

Reputation: 548

You are using a wrong key for members in your Group data class, it is data while in your json it shows the key is members use the following class and it will work

data class Group(
    @SerializedName("group_id")
    val group_id: Int,

    @SerializedName("group_name")
    val group_name: String,

    @SerializedName("members")
    val members: List<Member>

)

Upvotes: 1

Related Questions