【问题标题】:NullPointerException on initialised ArrayList object初始化 ArrayList 对象上的 NullPointerException
【发布时间】:2017-12-03 21:24:52
【问题描述】:

我已经阅读了this 的问题并试图纠正它。但是NullPointerException 的错误不会发生。
变量dataa 是我从以前的活动中得到的,变量dataa_OLD 是我从TinyDB 中检索的。我已经提到 this answer on SOHashMap 数据列表存储到 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

致命异常:主要 进程:com.example.acer.mylocationmap,PID:30082 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.acer.mylocationmap/com.example.acer.mylocationmap.DisplayStorageActivity}:java.lang.NullPointerException:尝试调用接口方法'void java.util.List。在空对象引用上添加(int,java.lang.Object)' 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3190) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300) 在 android.app.ActivityThread.access$1000(ActivityThread.java:211) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:6946) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 原因:java.lang.NullPointerException:尝试在空对象引用上调用接口方法“void java.util.List.add(int, java.lang.Object)” 在 com.example.acer.mylocationmap.DisplayStorageActivity.onCreate(DisplayStorageActivity.java:115) 在 android.app.Activity.performCreate(Activity.java:6575) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300) 在 android.app.ActivityThread.access$1000(ActivityThread.java:211) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:6946) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

我有什么遗漏的吗?请帮帮我。

【问题讨论】:

  • 能否提供您的NullPointerExceptionstack-trace
  • 在哪一行抛出异常?如果您在问题中发布完整的错误文本会有所帮助。
  • @Izruo 添加了堆栈跟踪
  • @Keara 是的,在编辑中添加为评论。

标签: java android nullpointerexception hashmap


【解决方案1】:

此时parked_addrs 似乎为空。

【讨论】:

  • 但是在dataa_OLD变量行上抛出了异常..这是否意味着别的?因为我首先要声明 parked_addrs ArrayList&lt;String&gt; parked_addrs = new ArrayList&lt;&gt;(); parked_addrs=tinyDB.getListString("paddrslist");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
  • 2017-04-28
  • 2013-06-27
相关资源
最近更新 更多