我正在开发一个应用程序,该应用程序在Android Studio模拟器上可以很好地运行,但是当我构建一个APK并安装在手机上时,它会关闭并崩溃。因此,我决定在手机上运行它,并使用ADB进行调试。
问题似乎出在该Java代码(https://pastebin.com/y8c5yMYj)的第67行
for (int i = 0; i < itemlist.size();i++){
Points item = itemlist.get(i);
googleMap.addMarker(new MarkerOptions()
.position(new LatLng(Double.valueOf(item.getPosx()), Double.valueOf(item.getPosy())))
.snippet(item.getDescription())
.icon(BitmapDescriptorFactory.fromResource(MarkerChange(item.getType())))
.title(item.getName()));
}
..但是我无法解决这个问题,有人可以在这个问题上给我一些帮助吗?
感谢...,并为任何发帖错误表示歉意:我是StackOverflow的新手,英语不是我的母语。
答案 0 :(得分:0)
解决方案:
添加此行是您的onCreateView()
Itemlist = new ArrayList<>();
希望它能起作用。
答案 1 :(得分:0)
您尚未初始化ArrayList。编辑代码
public static ArrayList<Points> itemlist;
使用
public static ArrayList<Points> itemlist = new ArrayList<>();
这将解决“ NullPointerException”问题
答案 2 :(得分:0)
这样更改您的onCreateView()
。
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.geometry_cube, container, false);
SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager()
.findFragmentById(R.id.mapFragment);
mapFragment.getMapAsync(this);
itemlist = new ArrayList<>();
return v;
}
每次加载该页面时,您需要将ArrayList<>()
声明为新的ArrayList