com.google.android.gms.maps.CameraUpdate对空对象的引用

时间:2018-09-02 13:25:14

标签: android

这正是标题“试图在空对象引用上调用虚拟方法'void com.google.android.gms.maps.GoogleMap.animateCamera(com.google.android.gms.maps.CameraUpdate)”,按搜索后,突然进入主要活动

logcat错误

$(document).ready(function(){
    $(document).on('click', '.my-images', function(e){
        processFileUpload($(this));
    });

    function processFileUpload($img){
        $img.attr("src", "images/" + fileName + ".png");
    }
});

源代码

E/Response:: [{"lat":"-7.584844","lng":"110.825068","id":"11","nama":"SMK 3 NEGERI SURAKARTA"}]
09-02 20:02:09.557 16955-16955/com.skripsi.axioo.percobaan5 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.skripsi.axioo.percobaan5, PID: 16955
    java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.animateCamera(com.google.android.gms.maps.CameraUpdate)' on a null object reference
        at com.skripsi.axioo.percobaan5.MapsActivity$3.onResponse(MapsActivity.java:304)
        at com.skripsi.axioo.percobaan5.MapsActivity$3.onResponse(MapsActivity.java:276)

尝试搜索第一个解决方案,但主要问题不是这样,这对我来说有点帮助,方法是添加supportfragment Google Map returning nullpointerexception Google Maps Android V2,任何人都可以告诉我,除了logcat以外,最严重的错误在哪里, 这是完整的代码https://pastebin.com/uYPbrAun

3 个答案:

答案 0 :(得分:0)

在您的代码中,您有两个GoogleMaps对象: gMap mMap 。正确获取和初始化的是mMap,但是稍后使用gMap放置标记并更新不存在的摄像机,这就是为什么要获得NPE的原因。

选择其中一个,然后删除另一个

答案 1 :(得分:0)

gMap为空。您没有初始化它。在onMapReadyMethod()中将其初始化为

......

public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        gMap = googleMap; //add this here
        .........
    }

答案 2 :(得分:0)

@faiizii awan 你的意思是这样的:

 mMap = googleMap;
        if (lati == null) {
            gMap = googleMap;
            center = new LatLng(-7.568737, 110.827062);
            cameraPosition = new CameraPosition.Builder().target(center).zoom(12).build();
            googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
            gMap.getUiSettings().setZoomControlsEnabled(true);
            gMap.getUiSettings().setRotateGesturesEnabled(true);
            gMap.getUiSettings().setScrollGesturesEnabled(true);
            gMap.getUiSettings().setTiltGesturesEnabled(true);


            getLokasi();
        } else {
            gMap = googleMap;
            center = new LatLng(lati, longi);
            cameraPosition = new CameraPosition.Builder().target(center).zoom(12).build();
            googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
            gMap.getUiSettings().setZoomControlsEnabled(true);
            gMap.getUiSettings().setRotateGesturesEnabled(true);
            gMap.getUiSettings().setScrollGesturesEnabled(true);
            gMap.getUiSettings().setTiltGesturesEnabled(true);

            getLokasi();
        }