0

I am working on a project that obtains data from a .txt file and processes it into 3 different variable Show, Series, Episodes.

I'm running into null object reference error and having trouble fixing it not too sure where i am messing up with this one. please any help you can give me would be greatly appreciated as I don't have much time left to finish this project before it is due for assessment.

Calling function.

public void GetSetShowData(int Count){

        String[] ShowsStrings = FileRead.ReadUpdates("TvShows.txt",Count);
        Shows[]  ShowData = new Shows[LineCount];
        for(int i = 0; i <= Count;i++) {
            String Temp = ShowsStrings[i];
            String[] Temp2;
            Temp2 = TextUtils.split(Temp, ",");
            Log.d("Line count: ", ""+LineCount);
            Log.d("Temp2 length", Integer.toString(Temp2.length));
            Log.d("Temp2[0] contains: ", Temp2[0].trim());
            Log.d("Temp2[1] contains: ",Temp2[1]);
            String name = Temp2[0];
            Log.d("name: " , name);
            ShowData[0].setName(name);
            Integer series = Integer.parseInt(Temp2[1].trim());
            Log.d("series:", " " + series);
            ShowData[i].setSeries(series);
            for(int i2 = 0;i2 >= (Temp2.length- 2);i2++ ){
                ShowData[i2].setEpisodes(i,Integer.parseInt(Temp2[i2 + 2]));
            }
            for(int log = 0; log > Temp2.length; log++){
                Log.d("Show Data: " + i , "Series: " + ShowData[i].getSeries() + " Episode: " + ShowData[i].getEpisodes(log));
            }

        }


    }

Class Shows (Multi datatype array)

public class Shows {
    public String Show = "";
    public int SeriesAmount = 0;
    public ArrayList<Integer> Episodes = new ArrayList<>();


    public Shows(){

    }

    public void setName(String Name){
            Show = Name;
    }

    public String getName(){

            return Show;

    }
    public void setSeries(int Series){
        SeriesAmount = Series;
    }

    public int getSeries(){
        return SeriesAmount;
    }

    public void setEpisodes(int Position, int Episode){

        Episodes.add(Position,Episode);
    }
    public int getEpisodes(int Position){
            return Episodes.get(Position);



    }

}

This is the error message i am receiving.

06-25 18:06:32.802 729-729/com.packageName E/AndroidRuntime: FATAL EXCEPTION: main Process: com.packageName, PID: 729 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.packageName/com.packageName.TvShows2}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.packageName.Shows.setName(java.lang.String)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2702) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767) at android.app.ActivityThread.access$900(ActivityThread.java:177) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5951) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.packageName.Shows.setName(java.lang.String)' on a null object reference at com.packageName.TvShows2.GetSetShowData(TvShows2.java:91) at com.packageName.TvShows2.onCreate(TvShows2.java:51) at android.app.Activity.performCreate(Activity.java:6289) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2655) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767)  at android.app.ActivityThread.access$900(ActivityThread.java:177)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:145)  at android.app.ActivityThread.main(ActivityThread.java:5951)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)

Vladimir Vagaytsev
  • 2,871
  • 9
  • 33
  • 36
  • `new Shows[LineCount];` makes an array of nulls. `ShowData[0].setName(name);` looks like a problem – OneCricketeer Jun 25 '16 at 17:28
  • Also, your for loops have `int i =0; i > array.length`... Do you expect to have negative length arrays? – OneCricketeer Jun 25 '16 at 17:30
  • Yeah i have sorted the loops issue but i still don't seem to understand on how i can fix this error how should i code it, all i see in the other question is pointing out what a null pointer is but nothing really on how to fix the offending code. or at least nothing that i have tried to implement from it has worked so can you please help out some more? – Tannky93 Jun 25 '16 at 18:48
  • Try this one (and read the question). http://stackoverflow.com/questions/5364278/creating-an-array-of-objects-in-java – OneCricketeer Jun 25 '16 at 18:51

0 Answers0