以下コーディングでGoogle mapを描画するandroidアプリを作成しております。
ある場所でズーム等を繰り返し、行うとクラッシュします。(新橋駅付近が発生します。)
Logが出てこないため、原因特定ができません。
ご存知の方いらっしゃいますでしょうか?
Android:6.0.1
Zenpadで発生。
java
1//MAP作成 2private GoogleMap mMap; 3MapFragment mapFragment; 4 5protected void onCreate(Bundle savedInstanceState) { 6 mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map); 7 mapFragment.getMapAsync(new OnMapReadyCallback() { 8 @Override 9 public void onMapReady(GoogleMap googleMap) { 10 Log.d(TAG, "onMapReady"); 11 12 mMap = googleMap; 13 mMap.getUiSettings().setZoomControlsEnabled(false); 14 //mMap.setMyLocationEnabled(false); 15 mMap.getUiSettings().setCompassEnabled(false); 16 mMap.getUiSettings().setMyLocationButtonEnabled(false); 17 mMap.getUiSettings().setMapToolbarEnabled(false); 18 mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 19 mMap.setIndoorEnabled(false); 20 mMap.getUiSettings().setTiltGesturesEnabled(false); 21 22 //現在位置に戻す 23 mMap.setOnCameraMoveStartedListener(new GoogleMap.OnCameraMoveStartedListener() { 24 @Override 25 public void onCameraMoveStarted(int reason) { 26 //マップのパン、チルト、ピンチ操作によるズーム、回転など、マップ上でのユーザー操作に応答してカメラが動いたことを示す 27 if(reason == GoogleMap.OnCameraMoveStartedListener.REASON_GESTURE){ 28 29 30 zoomable = false; 31 if (zoomBlockingTimer != null) { 32 zoomBlockingTimer.cancel(); 33 } 34 35 handlerOnUIThread = new Handler(); 36 37 TimerTask task = new TimerTask() { 38 @Override 39 public void run() { 40 handlerOnUIThread.post(new Runnable() { 41 @Override 42 public void run() { 43 zoomBlockingTimer = null; 44 zoomable = true; 45 //System.gc(); 46 } 47 }); 48 } 49 }; 50 zoomBlockingTimer = new Timer(); 51 zoomBlockingTimer.schedule(task, 10 * 1000); 52 } 53 54 55 } 56 }); 57 } 58 }); 59}
layout.xml
xml
1<fragment 2 android:id="@+id/map" 3 android:name="com.google.android.gms.maps.MapFragment" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:layout_marginTop="40dp" 7 />
あなたの回答
tips
プレビュー