2016-02-05 103 views
-1
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     MapFragment mapFragment = (MapFragment)getFragmentManager().findFragmentById(R.id.googleMap); 
     mapFragment.getMapAsync(this); // line 22 
    } 


    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     googleMap.addMarker(new MarkerOptions().position(new LatLng(25.4607640, 78.6432520)).title("Gaurav Joshi")); 

    } 
} 

這裏是我正努力在Android Studio來實現基本的代碼,但它顯示空指針異常:爲什麼此映射代碼會給出空指針異常?

Caused by: java.lang.NullPointerException at com.example.hp.g_1.MainActivity.onCreate(MainActivity.java:22) 
+3

請添加例外的堆棧跟蹤 – mbelsky

+1

可能會是您的googleMap變量。我沒有看到它在任何地方初始化。 – Fustigador

+0

@Fustigador'googleMap'是方法的參數 – mbelsky

回答

0

一個解決您的問題將被宣告你的GoogleMap的變量在類的,然後,在onMapReady裏面:

this.googleMap=googleMap; 
2

請檢查您是否在佈局文件activity_main.xml中定義了MapFragment。它看起來像FragmentManager無法找到一個地圖片段和拋出NPE在這裏:mapFragment.getMapAsync(this);,因爲mapFragment爲空

+0

+0

這就是main.xml包含的內容 –

+0

@GauravJoshi它看起來很奇怪。嘗試使用本教程:https://developers.google.com/maps/documentation/android-api/map在您的應用中添加地圖 – mbelsky

0

我認爲「谷歌地圖」id應該是片段容器的ID,而不是片段本身。