アプリケーションで Google マップを使用しています。Googleマップが正しくロードされたときに最初にクリックするとページにボタンがありますが、もう一度そのページに移動してそのボタンをクリックするとアプリがクラッシュします。
これは私のコードです:
public class GoogleMaps extends Activity {
MapFragment googleMapFragment = null;
プライベート スタティック GoogleMap googleMap = null;
プライベート文字列プロバイダー。
MarkerOptions マーカー;
二重緯度、経度;
プライベート LocationManager locationManager;
ParseGeoPoint myLatLng[];
int count_place, i = 0;
@オーバーライド
protected void onCreate(Bundle savedInstanceState) {
// TODO 自動生成メソッド スタブ
super.onCreate(savedInstanceState);
setContentView(R.layout.googlemap_view);
試す {
初期化マップ();
initParse();
キャッチ(例外e){
// TODO: 例外を処理する
Toast.makeText(getApplicationContext(), e.toString(),
Toast.LENGTH_SHORT).show();
}
}
プライベートボイドinitParse(){
// TODO 自動生成メソッド スタブ
Parse.initialize(これ、「キー」、「キー」);
ParseObject plcobj = new ParseObject("詳細");
getLatLong();
ParseGeoPoint myGeoPiont = new ParseGeoPoint(緯度、経度);
ParseGeoPoint userLocation = (ParseGeoPoint) plcobj.get("場所");
最終的な ParseQuery クエリ = ParseQuery.getQuery("詳細");
query.whereNear("場所", myGeoPiont);
query.setLimit(10);
query.whereWithinKilometers("場所", myGeoPiont, 10);
query.findInBackground(新しい FindCallback() {
@オーバーライド
public void done(List objects, ParseException e) {
// TODO 自動生成メソッド スタブ
もし (e == null) {
イテレータ Itr = objects.iterator();
while (Itr.hasNext()) {
ParseObject plcObjNext = (ParseObject) Itr.next();
myLatLng[i] = plcObjNext.getParseGeoPoint("場所");
i++; // 76 行目
}
}
}
});
}
プライベートボイドinitilizeMap() {
if (googleMap == null) {
googleMapFragment = ((MapFragment) getFragmentManager()
.findFragmentById(R.id.map));
googleMap = googleMapFragment.getMap();
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
「申し訳ありません! マップを作成できません」、Toast.LENGTH_SHORT)
。見せる();
}
googleMap.setMyLocationEnabled(真);
Log.e("マップ", "------EOC-------");
// ロケーション マネージャーを取得する
}
}
public void getLatLong() {
GPSTracker gps = new GPSTracker(GoogleMaps.this);
if (gps.canGetLocation()) {
経度 = gps.getLongitude();
緯度 = gps.getLatitude();
Toast.makeText(getApplicationContext(), 経度 + " " + 緯度,
Toast.LENGTH_SHORT).show();
} // ブール値の true/false を返します
そうしないと {
gps.showSettingsAlert();
}
}
}
これは私のログです:
10-18 13:37:24.219 E/AndroidRuntime(21624): 致命的な例外: メイン 10-18 13:37:24.219 E/AndroidRuntime(21624): java.lang.NullPointerException 10-18 13:37:24.219 E/AndroidRuntime(21624): com.example.restaurantfinder.GoogleMaps$1.done(GoogleMaps.java:76) 10-18 13:37:24.219 E/AndroidRuntime (21624): com.parse.FindCallback.internalDone (FindCallback.java:45) で 10-18 13:37:24.219 E/AndroidRuntime (21624): com.parse.FindCallback.internalDone (FindCallback.java:1) で 10-18 13:37:24.219 E/AndroidRuntime(21624): com.parse.Parse$6$1.run(Parse.java:888) 10-18 13:37:24.219 E/AndroidRuntime(21624): android.os.Handler.handleCallback(Handler.java:605) 10-18 13:37:24.219 E/AndroidRuntime(21624): android.os.Handler.dispatchMessage(Handler.java:92) 10-18 13:37:24.219 E/AndroidRuntime(21624): android.os.Looper.loop(Looper.java:137) 10-18 13:37:24.219 E/AndroidRuntime(21624): android.app.ActivityThread.main(ActivityThread.java:4517) 10-18 13:37:24.219 E/AndroidRuntime(21624): java.lang.reflect.Method.invokeNative(ネイティブメソッド) 10-18 13:37:24.219 E/AndroidRuntime(21624): java.lang.reflect.Method.invoke(Method.java:511) 10-18 13:37:24.219 E/AndroidRuntime(21624): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993) 10-18 13:37:24.219 E/AndroidRuntime (21624): com.android.internal.os.ZygoteInit.main (ZygoteInit.java:760) で 10-18 13:37:24.219 E/AndroidRuntime(21624): dalvik.system.NativeStart.main(ネイティブメソッド)