-1

I've read this for my problem and tried to rectify it. But the error of NullPointerException is not going.
The variable dataa is what I'm getting from previous activity and variable dataa_OLD is what I'm retrieving from the TinyDB. I've referred this answer on SO for storing HashMap data-list into Sharedpreferences.

...
 List<Map<String, String>> dataa= new ArrayList<>();
List<Map<String, String>> dataa_OLD= new ArrayList<>();
Map<String, String> mapp = new HashMap<String, String>();
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...

//Retrieving HashMap-lists from TinyDB
Gson gson = new Gson();
String mapListString= tinyDB.getString("DATA");
String mapListStringOLD= tinyDB.getString("DATA_OLD");
Type type = new TypeToken<ArrayList<Map<String,String>>>() {}.getType();
dataa = gson.fromJson(mapListString,type);
dataa_OLD = gson.fromJson(mapListStringOLD,type);

if(dataa.size()!=0) {
        for (Map<String, String> map : dataa) {
            parked_addrs.add(map.get("ADDRS"));//adding address part in another list
        }
        tinyDB.putListString("paddrslist", parked_addrs);

        if(dataa_OLD!=null) {
            for (Map<String, String> map : dataa) {    //adding new-list in old-list one by one
                mapp.put("ADDRS", map.get("ADDRS"));
                mapp.put("DATE", map.get("DATE"));
                dataa_OLD.add(mapp);
            }
        }
        else {
            mapp.put("ADDRS","");
            mapp.put("DATE","");
            dataa_OLD.add(0,mapp);
            dataa_OLD.addAll(dataa); // Line on which getting the error
        }
    }



The stack-trace

FATAL EXCEPTION: main Process: com.example.acer.mylocationmap, PID: 30082 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.acer.mylocationmap/com.example.acer.mylocationmap.DisplayStorageActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void java.util.List.add(int, java.lang.Object)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3190) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300) at android.app.ActivityThread.access$1000(ActivityThread.java:211) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:6946) 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:1404) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void java.util.List.add(int, java.lang.Object)' on a null object reference at com.example.acer.mylocationmap.DisplayStorageActivity.onCreate(DisplayStorageActivity.java:115) at android.app.Activity.performCreate(Activity.java:6575) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)  at android.app.ActivityThread.access$1000(ActivityThread.java:211)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:145)  at android.app.ActivityThread.main(ActivityThread.java:6946)  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:1404)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 

Is there anything that I'm missing? Please help me out.

Diksha
  • 346
  • 2
  • 19

1 Answers1

0

parked_addrs seems to be null at that point.

Cristian
  • 301
  • 3
  • 7
  • But the exception is thrown on `dataa_OLD` variable line.. does it mean something else? Because I'm having this statement above all for parked_addrs `ArrayList parked_addrs = new ArrayList<>(); parked_addrs=tinyDB.getListString("paddrslist");` – Diksha Dec 03 '17 at 21:53