-1
2022-09-05 22:15:46.726 5385-5385/com.example.recyclerview_practice_4 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.recyclerview_practice_4, PID: 5385
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
    at com.example.recyclerview_practice_4.Adapter.RecyclerViewCustomAdapter.getItemCount(RecyclerViewCustomAdapter.java:45)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:4044)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3849)
    at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
    at android.view.View.layout(View.java:22844)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1873)
    at android.view.View.layout(View.java:22844)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:22844)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:536)
    at android.view.View.layout(View.java:22844)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:22844)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
    at android.view.View.layout(View.java:22844)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at com.android.internal.policy.DecorView.onLayout(DecorView.java:784)
    at android.view.View.layout(View.java:22844)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3470)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2938)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1952)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8171)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
    at android.view.Choreographer.doCallbacks(Choreographer.java:796)
    at android.view.Choreographer.doFrame(Choreographer.java:731)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7656)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

2022-09-05 22:20:54.963 5452-5452/com.example.recyclerview_practice_4 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.recyclerview_practice_4, PID: 5452 java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference at com.example.recyclerview_practice_4.Adapter.RecyclerViewCustomAdapter.getItemCount(RecyclerViewCustomAdapter.java:45) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:4044) at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3849) at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1873) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:536) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673) at android.widget.LinearLayout.onLayout(LinearLayout.java:1582) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at com.android.internal.policy.DecorView.onLayout(DecorView.java:784) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3470) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2938) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1952) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8171) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972) at android.view.Choreographer.doCallbacks(Choreographer.java:796) at android.view.Choreographer.doFrame(Choreographer.java:731) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 2022-09-05 22:28:22.360 5544-5544/com.example.recyclerview_practice_4 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.recyclerview_practice_4, PID: 5544 java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference at com.example.recyclerview_practice_4.Adapter.RecyclerViewCustomAdapter.getItemCount(RecyclerViewCustomAdapter.java:45) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:4044) at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3849) at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1873) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:536) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673) at android.widget.LinearLayout.onLayout(LinearLayout.java:1582) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at com.android.internal.policy.DecorView.onLayout(DecorView.java:784) at android.view.View.layout(View.java:22844) at android.view.ViewGroup.layout(ViewGroup.java:6389) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3470) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2938) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1952) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8171) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972) at android.view.Choreographer.doCallbacks(Choreographer.java:796) at android.view.Choreographer.doFrame(Choreographer.java:731) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

here i'm providing my java code and yes i'm a beginner so pls i'm sorry for any silly work Some of the things which i want to share is that 1)i've checked my api key 2)and for some reason for small Json data it's working but for little big data like news it's not 3)i've tried a lot,find out my issue but i was unable to rectify it

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recyclerView = findViewById(R.id.recyclerView);
    RequestQueue requestQueue;
    requestQueue = Volley.newRequestQueue(this);


    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

            try {
                JSONArray article_array = response.getJSONArray("articles");
                for (int i = 0; i < article_array.length(); i++) {
                    JSONObject object = article_array.getJSONObject(i);
                    News news = new News(object.getString("author"), object.getString("title"),
                            object.getString("description"), object.getString("url"),
                            object.getString("urlToImage"), object.getString("publishedAt"));
                    newsArrayList.add(news);
                }

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("fine", "Something Wrong" + error);
            Toast.makeText(MainActivity.this, "Something Wrong " + error, Toast.LENGTH_SHORT).show();
            error.printStackTrace();
        }
    });
    requestQueue.add(request);
    RecyclerViewCustomAdapter recyclerViewCustomAdapter = new RecyclerViewCustomAdapter(this, newsArrayList);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.setAdapter(recyclerViewCustomAdapter);

}

}

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/black"

    xmlns:app="http://schemas.android.com/apk/res-auto"
    >
    <androidx.cardview.widget.CardView
        android:layout_height="335dp"
        android:id="@+id/card"
        app:cardCornerRadius="5dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_margin="10dp"
        android:background="#BEDFFF"
        android:backgroundTint="#BEDBF8"
        android:layout_width="match_parent"
        >
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:id="@+id/constraint_1"
            android:layout_height="match_parent">
            <androidx.appcompat.widget.LinearLayoutCompat
                android:id="@+id/linearlayout_cardview_activity_1"
                android:padding="10dp"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_constraintTop_toTopOf="@id/constraint_1"
                app:layout_constraintLeft_toLeftOf="@id/constraint_1"
                app:layout_constraintRight_toRightOf="@id/constraint_1"
                android:orientation="vertical"
                >
                <ImageView
                    android:id="@+id/newsimage"
                    android:layout_width="match_parent"
                    android:layout_height="200dp"
                    android:src="@mipmap/ic_launcher_round"
                    />
                <TextView
                    android:id="@+id/newsheadline"
                    android:layout_width="match_parent"
                    android:layout_height="70dp"
                    android:textSize="16sp"
                    android:textStyle="bold"
                    android:textAlignment="center"
                    android:text=""
                    android:padding="10dp"
                    android:layout_marginTop="10dp"
                    />
                <TextView
                    android:id="@+id/newsauthor"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="author"
                    android:padding="2dp"
                    android:textStyle="italic"
                    android:layout_marginTop="10dp"
                    />
            </androidx.appcompat.widget.LinearLayoutCompat>
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>

1 Answers1

0
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
    at com.example.recyclerview_practice_4.Adapter.RecyclerViewCustomAdapter.getItemCount(RecyclerViewCustomAdapter.java:45)
seems like your JSON does not contain an array called "articles", so you get a null pointer when attempting to ask for the `.length()` of a null object.

Sorry that's not your problem.

The problem is your RecyclerViewCustomAdapter but you have not shared the code for that class. Inside that class you call .size() on a null object.

Blundell
  • 75,855
  • 30
  • 208
  • 233
  • I rechecked my JSON sir, It do containes json array ("articles"). So to help you to understand my problem more effectively i'm sharing you my json link,You can check it out [link](https://newsapi.org/v2/top-headlines?country=us&category=business&apiKey=e22bc225b786446cb8dc5c792202df40) – Adarsh Kumar Singh Sep 05 '22 at 18:46