0

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

Pratik Gadoya
  • 1,420
  • 1
  • 16
  • 27
Edgar
  • 860
  • 1
  • 17
  • 38

2 Answers2

1

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>

)
Furqan Khan
  • 528
  • 4
  • 14
0

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>)
Amit Tiwary
  • 787
  • 1
  • 8
  • 16