-2
votes

L'application Android s'est écrasée en essayant d'analyser JSON à l'aide de volley

J'essaie d'afficher dans mon application une liste d'images avec l'utilisateur et le nombre de JSON-URL à l'aide de RECYCLERVIEW et de Volley ... en fait j'ai suivi ce tutoriel: https://codinginflow.com/tatudials/android/recyClerview-volley-picasso/part-4-get- Demande

Probablement l'erreur provenait de ExamplateAdapter P>

Ceci est mon examen d'examen: P>

Process: com.example.jsontest, PID: 12700
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
    at com.example.jsontest.ExampleAdapter.getItemCount(ExampleAdapter.java:49)
    at android.support.v7.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:3834)
    at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3639)
    at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4194)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1083)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1565)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    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:753)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2792)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2319)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1460)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7183)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
    at android.view.Choreographer.doCallbacks(Choreographer.java:761)
    at android.view.Choreographer.doFrame(Choreographer.java:696)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    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)


3 Réponses :


-1
votes

Dans les journaux, il est clairement mentionné que c'est NullpointerException lorsque vous appelez GetItemCount. La liste est donc nulle de votre réponse. Veuillez ajouter une vérification null avant de définir un adaptateur. Dans votre cas, Mexamplelist est NULL.

java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
    at com.example.jsontest.ExampleAdapter.getItemCount(ExampleAdapter.java:49)


0 commentaires

0
votes

Vous devriez toujours réinitialiser votre liste avant d'essayer de le remplir. Cela garantira que la liste n'est pas NULL, et cela garantira que la liste est vide pour commencer:

            public void onResponse(JSONObject response) {
                try {

                    //Always re-initialize your list before retrieving the data.
                    mExamplelist = new ArrayList<ExampleItem>();

                    JSONArray jsonArray = response.getJSONArray("hits");
                    for (int i=0;i<jsonArray.length();i++){
                        JSONObject hit = jsonArray.getJSONObject(i);

                        String creatorName = hit.getString("user");
                        String imageUrl = hit.getString("webformatURL");
                        int likeCount = hit.getInt("likes");

                        mExamplelist.add(new ExampleItem(imageUrl,creatorName,likeCount));
                    }
                    mExampleAdapter = new ExampleAdapter(MainActivity.this, mExamplelist);
                    mRecyclerView.setAdapter(mExampleAdapter);

                } catch (JSONException e)
                {
                    Log.d("bibicha","me te5demchi zid chouf ");
                    e.printStackTrace();
                }
            }


0 commentaires

0
votes

Je le répare ... J'ai juste besoin de passer mon examen d'examen et du contexte au constructeur d'Examplateadapter xxx

}


0 commentaires