0

Hi i'm having a problem with my app, its crashing when ever i press button called "Riders". The error that i'm getting is:

 12-13 10:40:03.467 16463-16463/bskerritt.student.ncirl.ie.saddleup E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                     Process: bskerritt.student.ncirl.ie.saddleup, PID: 16463
                                                                                     java.lang.RuntimeException: Unable to start activity ComponentInfo{bskerritt.student.ncirl.ie.saddleup/bskerritt.student.ncirl.ie.saddleup.RiderActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)' on a null object reference
                                                                                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
                                                                                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                                                         at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                                                                                         at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                         at android.os.Looper.loop(Looper.java:154)
                                                                                         at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                                      Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)' on a null object reference
                                                                                         at bskerritt.student.ncirl.ie.saddleup.RiderActivity.onCreate(RiderActivity.java:54)
                                                                                         at android.app.Activity.performCreate(Activity.java:6679)
                                                                                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                                                                                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
                                                                                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
                                                                                         at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                                                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
                                                                                         at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                         at android.os.Looper.loop(Looper.java:154) 
                                                                                         at android.app.ActivityThread.main(ActivityThread.java:6119) 
                                                                                         at java.lang.reflect.Method.invoke(Native Method) 
                                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

I'v been trying to solve this for ages now. The error is referencing the error to the page called RiderActivity:

package bskerritt.student.ncirl.ie.saddleup;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;

import java.util.ArrayList;

public class RiderActivity extends AppCompatActivity {

    RecyclerView recyclerView;
    RecyclerView.Adapter adapter;
    RecyclerView.LayoutManager layoutManager;
    ArrayList<Contact> list = new ArrayList<Contact>();

    int[] image_id = { R.drawable.lilyheadshot, R.drawable.aaronheadshot, R.drawable.willowheadshot,
            R.drawable.kidheadshot1, R.drawable.kidheadshot2, R.drawable.kidheadshot3, R.drawable.kidheadshot4,
            R.drawable.kidheadshot5 };

    String[] name, mobile, address;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rider);

        name = getResources().getStringArray(R.array.rider_name);
        mobile = getResources().getStringArray(R.array.rider_mobile);
        address = getResources().getStringArray(R.array.rider_address);

        int count = 0;

        for(String Name: name) {

            Contact contact = new Contact(image_id[count], Name, mobile[count], address[count]);
            count++;
            list.add(contact);
        }

        recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
        layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setHasFixedSize(true);
        adapter = new ContactAdapter(list);
        recyclerView.setAdapter (adapter);
    }
}

I'm using android studio, any help will be appreciated. I was trying few solutions that are on stackoverflow but non worked. Please help. Thanks !

This is the code for my activity_rider:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="bskerritt.student.ncirl.ie.saddleup.RiderActivity">

<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/RecyclerView">

    <RelativeLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:padding="10dp"
        >

        <ImageView
            android:id="@+id/rider_image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/lilyheadshot" />

        <TextView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_toRightOf="@id/rider_image"
            android:text="Lily Skerritt"
            android:textSize="20dp"
            android:textStyle="bold"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="15dp"
            android:layout_alignParentTop="true"
            android:id="@+id/rider_name"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/rider_name"
            android:layout_toRightOf="@id/rider_image"
            android:text="0872287760"
            android:textSize="18dp"
            android:textStyle="bold"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="5dp"
            android:id="@+id/rider_mobile"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/rider_mobile"
            android:layout_toRightOf="@id/rider_image"
            android:text="Laytown, Meath"
            android:textSize="18dp"
            android:textStyle="bold"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="5dp"
            android:id="@+id/rider_address"
            />

    </RelativeLayout>


</android.support.v7.widget.RecyclerView>


<Button
    android:id="@+id/button5"
    android:layout_width="160dp"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="14dp"
    android:text="@string/addRiderBtn"
    android:textColor="@color/suPrimary"
    android:textSize="18sp"
    android:textStyle="bold" />

Also regarding the other code provided with context, i'm getting this error: http://prntscr.com/hmw2yi

Okay so the first error has been fixed, changing the R.id.RecyclerView did it but for some reason the error now occurs on different line:

12-13 11:10:11.590 2486-2486/bskerritt.student.ncirl.ie.saddleup E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                   Process: bskerritt.student.ncirl.ie.saddleup, PID: 2486
                                                                                   java.lang.RuntimeException: Unable to start activity ComponentInfo{bskerritt.student.ncirl.ie.saddleup/bskerritt.student.ncirl.ie.saddleup.RiderActivity}: android.view.InflateException: Binary XML file line #15: RecyclerView has no LayoutManager
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                                                       at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                       at android.os.Looper.loop(Looper.java:154)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                                    Caused by: android.view.InflateException: Binary XML file line #15: RecyclerView has no LayoutManager
                                                                                    Caused by: java.lang.IllegalStateException: RecyclerView has no LayoutManager
                                                                                       at android.support.v7.widget.RecyclerView.generateLayoutParams(RecyclerView.java:3996)
                                                                                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:860)
                                                                                       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                                                                                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
                                                                                       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
                                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
                                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
                                                                                       at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:289)
                                                                                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                                                                                       at bskerritt.student.ncirl.ie.saddleup.RiderActivity.onCreate(RiderActivity.java:36)
                                                                                       at android.app.Activity.performCreate(Activity.java:6679)
                                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                                                       at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                       at android.os.Looper.loop(Looper.java:154)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
12-13 11:11:00.875 2486-2494/bskerritt.student.ncirl.ie.saddleup W/art: Suspending all threads took: 6.024ms
  • 1
    It would seem that the `` with ID `recycler_view` is not in the `activity_rider` layout. – Mike M. Dec 13 '17 at 10:49
  • share your `activity_rider` layout file with question – AskNilesh Dec 13 '17 at 10:51
  • You've got the wrong ID in the `findViewById()` call. It should be `R.id.RecyclerView`. – Mike M. Dec 13 '17 at 11:02
  • @IntelliJAmiya Yeah, I noticed it yesterday. The account got deleted about 3 minutes after they accepted the answer. If only it had happened a little quicker, it'd be easier to delete this thing. – Mike M. Dec 14 '17 at 18:06

2 Answers2

1

Use this

recyclerView = (RecyclerView) findViewById(R.id.RecyclerView);

Instead of this

recyclerView = (RecyclerView) findViewById(R.id.recycler_view);

EDIT

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="bskerritt.student.ncirl.ie.saddleup.RiderActivity">

<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/RecyclerView"/>

    <RelativeLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:padding="10dp"
        >

        <ImageView
            android:id="@+id/rider_image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/lilyheadshot" />

        <TextView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_toRightOf="@id/rider_image"
            android:text="Lily Skerritt"
            android:textSize="20dp"
            android:textStyle="bold"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="15dp"
            android:layout_alignParentTop="true"
            android:id="@+id/rider_name"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/rider_name"
            android:layout_toRightOf="@id/rider_image"
            android:text="0872287760"
            android:textSize="18dp"
            android:textStyle="bold"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="5dp"
            android:id="@+id/rider_mobile"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/rider_mobile"
            android:layout_toRightOf="@id/rider_image"
            android:text="Laytown, Meath"
            android:textSize="18dp"
            android:textStyle="bold"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="5dp"
            android:id="@+id/rider_address"
            />

    </RelativeLayout>





<Button
    android:id="@+id/button5"
    android:layout_width="160dp"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="14dp"
    android:text="@string/addRiderBtn"
    android:textColor="@color/suPrimary"
    android:textSize="18sp"
    android:textStyle="bold" />

AskNilesh
  • 67,701
  • 16
  • 123
  • 163
0

Please specify you are using same id in .xml file of recycler view

Second thing-:

package bskerritt.student.ncirl.ie.saddleup;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;

import java.util.ArrayList;

public class RiderActivity extends AppCompatActivity {

RecyclerView recyclerView;
RecyclerView.Adapter adapter;
RecyclerView.LayoutManager layoutManager;
private Context context=this;
ArrayList<Contact> list = new ArrayList<Contact>();

int[] image_id = {
        R.drawable.lilyheadshot,
        R.drawable.aaronheadshot,
        R.drawable.willowheadshot,
        R.drawable.kidheadshot1,
        R.drawable.kidheadshot2,
        R.drawable.kidheadshot3,
        R.drawable.kidheadshot4,
        R.drawable.kidheadshot5
};

String[] name, mobile, address;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_rider);

    name = getResources().getStringArray(R.array.rider_name);
    mobile = getResources().getStringArray(R.array.rider_mobile);
    address = getResources().getStringArray(R.array.rider_address);

    int count = 0;

    for(String Name: name){

        Contact contact = new Contact(image_id[count], Name, mobile[count], address[count]);
        count++;
        list.add(contact);
    }

    recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
    layoutManager = new LinearLayoutManager(context);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setHasFixedSize(true);
    adapter = new ContactAdapter(list);
    recyclerView.setAdapter (adapter);
}}'


Use context in case of this as I have changed the code.
Shivam Oberoi
  • 1,447
  • 1
  • 9
  • 18