我已经为我的问题阅读了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 回答
parked_addrs在那时似乎是空的 .