0

我的應用程序顯示mapfragment並在其上繪製少量標記。 當我在真機上運行,​​everithing是好的,但是當我使用AVD模擬器或Genymotion模擬器我有這種類型的錯誤(來自logcat中)的:在設備上測試ok,在模擬器上NULLPOINTER

06-18 11:51:02.743: E/AndroidRuntime(1825): FATAL EXCEPTION: main 
06-18 11:51:02.743: E/AndroidRuntime(1825): java.lang.RuntimeException: Unable to resume activity {com.flex.sklepik/com.flex.sklepik.ReadComments}: java.lang.NullPointerException 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2120) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2135) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1668) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.os.Looper.loop(Looper.java:130) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at java.lang.reflect.Method.invoke(Method.java:507) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at dalvik.system.NativeStart.main(Native Method) 
06-18 11:51:02.743: E/AndroidRuntime(1825): Caused by: java.lang.NullPointerException 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at com.flex.sklepik.ReadComments.wczytajMape(ReadComments.java:423) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at com.flex.sklepik.ReadComments$LoadComments.onPreExecute(ReadComments.java:299) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.os.AsyncTask.execute(AsyncTask.java:391) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at com.flex.sklepik.ReadComments.onResume(ReadComments.java:160) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.app.Activity.performResume(Activity.java:3832) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2110) 
06-18 11:51:02.743: E/AndroidRuntime(1825):  ... 12 more 

而且 代碼從線423看起來是這樣的:

public boolean wczytajMape() { 
     if (mMap == null) { 
      SupportMapFragment mapFrag = (SupportMapFragment) getSupportFragmentManager() 
        .findFragmentById(R.id.map); 
      mMap = mapFrag.getMap(); 
      mMap.setOnMarkerClickListener(this); \\----->423 line 
      mMap.setMyLocationEnabled(true); 

     } 
     return (mMap != null); 

    } 

這種錯誤實在是煩人,它發生在10 API及API 17,這個我進行了調查。我沒有在另一個版本上測試它。任何人都可以幫助我?

+1

檢查谷歌模擬器。您正在嘗試使用沒有MAP的普通模擬器。 –

+0

這意味着您的mMap在該位置爲NULL。 –

+0

是的我知道,但爲什麼在真實的設備上一切都好? – bakusek

回答

0

檢查仿真器(AVD經理)已谷歌播放API版本,如果不是你將無法使用地圖和更多的功能

希望它可以幫助

編輯:恐怕我錯了,您將無法直接在模擬器中使用地圖。 Google沒有提供這樣做的手段。

有沒有官方的方式來擁有這些功能,但他們非常灰心,所以我不會推薦你使用它們。

+0

我可以在哪裏查看? – bakusek

+0

您怎麼看待它http://hmkcode.com/run-google-map-v2-on-android-emulator/ – bakusek

0

通過使用OnInfoWindowClickListener代替它來管理它。

試試這個代碼太:

Marker marker_1; 

    mMap.setOnMarkerClickListener((OnMarkerClickListener)); 

    @Override 
    public boolean onMarkerClick(Marker marker) { 
    // TODO Auto-generated method stub 
    if(marker.equals(marker_1)){ 
     Log.w("Click", "test"); 
     return true; 
    } 
    return false;   
    } 

在此之前,請檢查您的SDK管理器顯示 Eclipse的谷歌遊戲地圖:

步驟如下:

  • 選擇Window> Android SDK管理器。

*安裝Google Play服務SDK。

滾動到軟件包列表的底部,展開Extras,選擇Google Play服務並安裝它。如果您使用的是Android Studio,還需要安裝Google Repository(它提供了用於Gradle構建的Maven存儲庫)。

*安裝兼容版本的Google API平臺。

  • 安裝包

轉寄此[ [LINK]更多參考。

+0

我現在有Google Play服務SDK,沒有它我無法編譯我的應用程序並在真實設備上運行。 – bakusek

相關問題