2015-01-06 64 views
0

2:10:25.524:E/AndroidRuntime(2019):致命異常:主01-06 12:10:25.524:E/AndroidRuntime(2019):進程:com.kandy,PID:2019 01- 06 12:10:25.524:E/AndroidRuntime(2019): java.lang.RuntimeException:無法啓動活動 ComponentInfo {com.kandy/com.kandy.citymap}: java.lang.NullPointerException 01-06 12: 10:25.524: E/AndroidRuntime(2019):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 01-06 12:10:25.524:E/AndroidRuntime(2019):at android.app .ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 01-06 12:10:25.524: E/AndroidRuntime(2019):at android.app.ActivityThread.access $ 800(ActivityThread.java:135)01-06 12:10:25.524:E/AndroidRuntime(2019):at android.app.ActivityThread $ H .handleMessage(ActivityThread.java:1196) 01-06 12:10:25.524:E/AndroidRuntime(2019):at android.os.Handler.dispatchMessage(Handler.java:102)01-06 12:10: 25.524:E/AndroidRuntime(2019):在 android.os.Looper.loop(Looper.java:136)01-06 12:10:25.524: E/AndroidRuntime(2019):at android.app.ActivityThread。 main(ActivityThread.java:5017)01-06 12:10:25.524:E/AndroidRuntime(2019):at java.lang.reflect.Method.invokeNative(Native Method)01-06 12:10:25。 524:E/AndroidRuntime(2019):在 java.lang.reflect.Method.invoke(Method.java:515)01-06 12:10:25.524: E/AndroidRuntime(2019):at com.android。 internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779) 01-06 12:10:25.524:E/AndroidRuntime(2019):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java :595)01-06 12:10:25.524:E/AndroidRuntime(2019):at dalvik.system.NativeStart.main(Native Method)01-06 12:10:25.524: E/AndroidRuntime(2019):導致:java.lang.NullPointerException 01-06 12:10:25.524:E/AndroidRuntime(2019):at com.kandy.citymap.onCreate(citymap.java:25)01-06 12:10:25.524: E/AndroidRuntime(2019):在 android.app.Activity.performCreate(Activity.java:5231)01-06 12:10:25.524:E/AndroidRuntime(2019):at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 01 -06 12:10:25.524:E/AndroidRuntime(2019):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)Android代碼中的空指針異常?

我使用谷歌地圖爲這一個

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 


import android.app.Activity; 
import android.os.Bundle; 

public class citymap extends Activity { 
    GoogleMap gmap; 


    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.citymap); 



     gmap=((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap(); 
     gmap.setMapType(GoogleMap.MAP_TYPE_NORMAL);//line 25 


     gmap.setMyLocationEnabled(true); 


     gmap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(7.2964, 80.6350),12)); 
     gmap.addMarker(new MarkerOptions().position(new LatLng(7.2964, 80.6350)).title("Kandy")); 
}} 
+1

我想gmap.setMapType()是什麼導致你的NPE?這將是因爲你的地圖沒有膨脹,所以getMap返回null。只是一個猜測。 – zgc7009

+0

標記你的線路號碼25. – BeingMIAkashs

+0

首先格式化你的stacktrace,這樣它實際上是可讀的 – njzk2

回答

0

好的,當你試圖找到gmap的視圖(你正在做的事)並且之後你做下一個你得到null的onCreate方法[R試圖馬上獲得與功能get map()地圖(在這裏你做錯了),只是做你找到你的東西時查看下一

gmap=((MapFragment)getFragmentManager().findFragmentById(R.id.map)); 
gmap.getMap(); 

從不使用的方法(的GetMap(),或者熟悉的東西)!

0

使用SupportMapFragment代替MapFragment。嘗試下面的代碼片段

SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); 

gmap = fm.getMap();