首页 文章

初始化的ArrayList对象上的NullPointerException

提问于
浏览
-1

我已经为我的问题阅读了this并试图纠正它 . 但 NullPointerException 的错误不会发生 .
变量 dataa 是我从之前的活动获得的变量 dataa_OLD 是我从 TinyDB 检索的变量 . 我已将this answer on SO用于将 HashMap data-list存储到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
        }
    }

stack-trace

FATAL EXCEPTION:main进程:com.example.acer.mylocationmap,PID:30082 java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.acer.mylocationmap / com.example.acer.mylocationmap.DisplayStorageActivity}:java .lang.NullPointerException:尝试在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3190)的空对象引用上调用接口方法'void java.util.List.add(int,java.lang.Object)' android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)在android.app.ActivityThread.access $ 1000(ActivityThread.java:211)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1705)在android . android.app.Looper.loop(Looper.java:145)的os.Handler.dispatchMessage(Handler.java:102)位于android.app.ActivityThread.main(ActivityThread.java:6946)的java.lang.reflect.Method .invoke(Native Method)at java.lang.reflect.Method.invoke(Method.java:372)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteIni) t.java:1404)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)引起:java.lang.NullPointerException:尝试调用接口方法'void java.util.List.add(int ,java.lang.Object)'在android上的android.app.Activity.performCreate(Activity.java:6575)的com.example.acer.mylocationmap.DisplayStorageActivity.onCreate(DisplayStorageActivity.java:115)上的空对象引用上 . 在Android.app.ActivityThread.access的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300)的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143)上的app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)在Android.os.Looper.loop(Looper)的android.app.Handler.dispatchMessage(Handler.java:102)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1705)$ 1000(ActivityThread.java:211) .java:145)在java.lang.reflect.Method的java.lang.reflect.Method.invoke(Native Method)的android.app.ActivityThread.main(ActivityThread.java:6946) . 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1404)中调用(Method.java:372)

有什么我想念的吗?请帮帮我 .

1 回答

  • 0

    parked_addrs在那时似乎是空的 .

相关问题