应用程序在我的真实手机中崩溃,但在Android模拟器上运行良好

时间:2018-09-10 03:25:38

标签: java android

我正在开发一个应用程序,该应用程序在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的新手,英语不是我的母语。

3 个答案:

答案 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