Попытка вызвать метод интерфейса 'java.lang.Object java.util.List.get (int) - PullRequest
0 голосов
/ 21 октября 2019

Я занимаюсь разработкой нового и читаю JSON-файл из папки ресурсов, но получаю следующее исключение

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)

ниже моего кода для ввода

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Вы не используете правильный ключ

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

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

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

В соответствии со схемой JSON это должно быть

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

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

@SerializedName("members")
val members: List<Member>)
1 голос
/ 21 октября 2019

Вы используете неправильный ключ для членов в вашем классе данных группы, это data , в то время как в вашем json он показывает, что ключ members использует следующий класс, и он будет работать

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

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

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

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...