質問編集履歴

2

試したことの追加

2020/01/26 05:09

投稿

suguru_sato
test CHANGED
@@ -1 +1 @@
1
- android studio mapviewを含むフラグメントの切り替えがうまくかない
1
+ Nullpointerexceptionにつ
test CHANGED
@@ -1,14 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- ようにメニュがuploadからsearchに変わるきにupload時だけでよボタンがsearch時に表示されしまいます
3
+ fragmentのコドでmapFragment.getMapAsync(this);のあとの行の何も書てないとこと startLocation();ところでエラーが起きています
4
-
5
- メニュータブと上に半分だけ見えてるtextviewのみがアクティビティで真ん中の部分はフラグメントです
6
-
7
- フラグメントが遷移する際にボタンの表示をなくしたいです
8
-
9
- ![イメージ説明](098ad8dd47199112ef26ff39a2f1588c.png)
10
-
11
- ![イメージ説明](541a090ea9e60aa9d4dd0944ec450e28.png)
12
4
 
13
5
 
14
6
 
@@ -16,34 +8,20 @@
16
8
 
17
9
 
18
10
 
19
- ビルドはできますがlogcatを見たところエラーがありました
20
-
21
11
  ```error
22
12
 
23
- 2020-01-24 20:43:57.568 1135-1135/com.example.sharemap2 E/AndroidRuntime: FATAL EXCEPTION: main
24
-
25
- Process: com.example.sharemap2, PID: 1135
26
-
27
- java.lang.NullPointerException:
28
-
29
- Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference at com.example.sharemap2.fragment_upload_root.onMapReady(fragment_upload_root.java:119)
13
+ 2020-01-26 13:36:57.826 18887-18887/com.example.sharemap2 E/AndroidRuntime: FATAL EXCEPTION: main
14
+
15
+ Process: com.example.sharemap2, PID: 18887
16
+
17
+ java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.SupportMapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference
18
+
19
+ at com.example.sharemap2.fragment_upload_root.startLocation(fragment_upload_root.java:105)
20
+
21
+ at com.example.sharemap2.fragment_upload_root.onActivityCreated(fragment_upload_root.java:89)
30
22
 
31
23
  ```
32
24
 
33
- 自分としてはfragment_upload_root内のonMapReadyでの
34
-
35
- location1 = locationmanager1.getLastKnownLocation(provider);
36
-
37
- double lat = location1.getLatitude();
38
-
39
- この部分がうまくいってなくて
40
-
41
- locationmanager1 = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
42
-
43
- でうまくlocationmanagerを取得できてないんだと思います(getSystemServiceの部分でカーソルを合わせるとmay produce Nullexceptionとなります)
44
-
45
- locationManagerをフラグメント内で取得することはムリなのでしょうか?
46
-
47
25
 
48
26
 
49
27
 
@@ -110,6 +88,10 @@
110
88
 
111
89
 
112
90
 
91
+ import com.google.android.gms.location.FusedLocationProviderClient;
92
+
93
+ import com.google.android.gms.location.LocationServices;
94
+
113
95
  import com.google.android.gms.maps.CameraUpdateFactory;
114
96
 
115
97
  import com.google.android.gms.maps.GoogleMap;
@@ -178,11 +160,41 @@
178
160
 
179
161
  Bundle savedInstanceState) {
180
162
 
163
+ return inflater.inflate(R.layout.fragment_upload, container, false);
164
+
165
+ }
166
+
167
+
168
+
169
+ @Override
170
+
171
+ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
172
+
173
+ super.onActivityCreated(savedInstanceState);
174
+
181
175
  locationmanager1 = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
182
176
 
183
177
 
184
178
 
179
+ try {
180
+
181
+ if(locationmanager1 != null) {
182
+
185
- View v = inflater.inflate(R.layout.fragment_upload, container, false);
183
+ Log.d("a","OK-reach-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
184
+
185
+ } else {
186
+
187
+ throw new NullPointerException();
188
+
189
+ }
190
+
191
+ } catch(NullPointerException e) {
192
+
193
+ e.printStackTrace();
194
+
195
+ }
196
+
197
+
186
198
 
187
199
 
188
200
 
@@ -198,27 +210,15 @@
198
210
 
199
211
  //許可されたら位置取得
200
212
 
213
+ //下の行にNull
214
+
201
- //startLocation();
215
+ startLocation();
202
-
203
- mapView = (MapView) v.findViewById(R.id.mapView);
216
+
204
-
205
- mapView.onCreate(savedInstanceState);
206
-
207
- mapView.onResume();
208
-
209
- mapView.getMapAsync(this);
210
-
211
-
212
-
213
- }
217
+ }
214
-
215
- return v;
218
+
216
-
219
+
220
+
217
- }
221
+ }
218
-
219
-
220
-
221
-
222
222
 
223
223
 
224
224
 
@@ -238,15 +238,13 @@
238
238
 
239
239
 
240
240
 
241
- //FusedLocationProviderClient mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
241
+ //FusedLocationProviderClient mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(getActivity());
242
-
242
+
243
- // SupportMapFragment mapFragment =(SupportMapFragment)getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
243
+ SupportMapFragment mapFragment =(SupportMapFragment)getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
244
-
245
-
246
-
244
+
247
- //mapFragment.getMapAsync(this);
245
+ mapFragment.getMapAsync(this);
246
+
248
-
247
+ //この行にNul
249
-
250
248
 
251
249
  }
252
250
 
@@ -524,15 +522,29 @@
524
522
 
525
523
 
526
524
 
525
+
526
+
527
527
  ```
528
528
 
529
529
 
530
530
 
531
531
  ### 試したこと
532
532
 
533
-
533
+ try {
534
+
534
-
535
+ startLocation();
536
+
537
+ } catch(NullPointerException e) {
538
+
539
+ e.printStackTrace();
540
+
535
- マップフラグメントをフラグメントに埋め込む感じでやっていましたが、onMapreadyの処理が機能しないことからレイアウトにMapviewを使うことにしました。
541
+ Log.d("tag","Null-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
542
+
543
+ }
544
+
545
+
546
+
547
+ を実行することでNullpointerExceptionが確認できました
536
548
 
537
549
 
538
550
 

1

質問内容の具体化

2020/01/26 04:59

投稿

suguru_sato
test CHANGED
@@ -1 +1 @@
1
- Nullpointerexceptionにつ
1
+ android studio mapviewを含むフラグメントの切り替えがうまくかない
test CHANGED
@@ -1,6 +1,14 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- fragmentのコドでmapFragment.getMapAsync(this);のあとの行の何も書てないとこと startLocation();ところでエラーが起きています
3
+ ようにメニュがuploadからsearchに変わるきにupload時だけでよボタンがsearch時に表示されしまいます
4
+
5
+ メニュータブと上に半分だけ見えてるtextviewのみがアクティビティで真ん中の部分はフラグメントです
6
+
7
+ フラグメントが遷移する際にボタンの表示をなくしたいです
8
+
9
+ ![イメージ説明](098ad8dd47199112ef26ff39a2f1588c.png)
10
+
11
+ ![イメージ説明](541a090ea9e60aa9d4dd0944ec450e28.png)
4
12
 
5
13
 
6
14
 
@@ -8,20 +16,34 @@
8
16
 
9
17
 
10
18
 
19
+ ビルドはできますがlogcatを見たところエラーがありました
20
+
11
21
  ```error
12
22
 
13
- 2020-01-26 13:36:57.826 18887-18887/com.example.sharemap2 E/AndroidRuntime: FATAL EXCEPTION: main
14
-
15
- Process: com.example.sharemap2, PID: 18887
16
-
17
- java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.SupportMapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference
18
-
19
- at com.example.sharemap2.fragment_upload_root.startLocation(fragment_upload_root.java:105)
20
-
21
- at com.example.sharemap2.fragment_upload_root.onActivityCreated(fragment_upload_root.java:89)
23
+ 2020-01-24 20:43:57.568 1135-1135/com.example.sharemap2 E/AndroidRuntime: FATAL EXCEPTION: main
24
+
25
+ Process: com.example.sharemap2, PID: 1135
26
+
27
+ java.lang.NullPointerException:
28
+
29
+ Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference at com.example.sharemap2.fragment_upload_root.onMapReady(fragment_upload_root.java:119)
22
30
 
23
31
  ```
24
32
 
33
+ 自分としてはfragment_upload_root内のonMapReadyでの
34
+
35
+ location1 = locationmanager1.getLastKnownLocation(provider);
36
+
37
+ double lat = location1.getLatitude();
38
+
39
+ この部分がうまくいってなくて
40
+
41
+ locationmanager1 = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
42
+
43
+ でうまくlocationmanagerを取得できてないんだと思います(getSystemServiceの部分でカーソルを合わせるとmay produce Nullexceptionとなります)
44
+
45
+ locationManagerをフラグメント内で取得することはムリなのでしょうか?
46
+
25
47
 
26
48
 
27
49
 
@@ -88,10 +110,6 @@
88
110
 
89
111
 
90
112
 
91
- import com.google.android.gms.location.FusedLocationProviderClient;
92
-
93
- import com.google.android.gms.location.LocationServices;
94
-
95
113
  import com.google.android.gms.maps.CameraUpdateFactory;
96
114
 
97
115
  import com.google.android.gms.maps.GoogleMap;
@@ -160,266 +178,250 @@
160
178
 
161
179
  Bundle savedInstanceState) {
162
180
 
163
- return inflater.inflate(R.layout.fragment_upload, container, false);
164
-
165
- }
166
-
167
-
168
-
169
- @Override
170
-
171
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
172
-
173
- super.onActivityCreated(savedInstanceState);
174
-
175
181
  locationmanager1 = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
176
182
 
177
183
 
178
184
 
185
+ View v = inflater.inflate(R.layout.fragment_upload, container, false);
186
+
187
+
188
+
189
+ if (ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[0]) != GRANTED &&
190
+
191
+ ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[1]) != GRANTED) {
192
+
193
+ // ↓「アクセスを許可しますか?」
194
+
195
+ requestPermissions(LOCATION_PERMISSION, LOCATION_CODE);
196
+
197
+ } else {
198
+
199
+ //許可されたら位置取得
200
+
201
+ //startLocation();
202
+
203
+ mapView = (MapView) v.findViewById(R.id.mapView);
204
+
205
+ mapView.onCreate(savedInstanceState);
206
+
207
+ mapView.onResume();
208
+
209
+ mapView.getMapAsync(this);
210
+
211
+
212
+
213
+ }
214
+
179
- try {
215
+ return v;
216
+
180
-
217
+ }
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+ //許可されたら位置取得、のところ
226
+
227
+ void startLocation() {
228
+
229
+ if (ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[0]) == GRANTED ||
230
+
231
+ ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[1]) == GRANTED) {
232
+
233
+
234
+
235
+ // 許可を得られたことを確認できた段階で初めてsetContentView()を呼ぶ
236
+
237
+ // onMapReady()が走るのはこれ以後になる
238
+
239
+
240
+
241
+ //FusedLocationProviderClient mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
242
+
243
+ // SupportMapFragment mapFragment =(SupportMapFragment)getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
244
+
245
+
246
+
247
+ //mapFragment.getMapAsync(this);
248
+
249
+
250
+
251
+ }
252
+
253
+ }
254
+
255
+
256
+
257
+ @Override
258
+
259
+ public void onMapReady(GoogleMap googleMap) {
260
+
261
+
262
+
263
+ mMap = googleMap;
264
+
181
- if(locationmanager1 != null) {
265
+ mMap.setMyLocationEnabled(true);
182
-
266
+
183
- Log.d("a","OK-reach-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
267
+ Log.d("a","OKabc");
268
+
269
+
270
+
271
+ if (ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[0]) == GRANTED ||
272
+
273
+ ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[1]) == GRANTED) {
274
+
275
+
276
+
277
+
278
+
279
+ Criteria criteria = new Criteria();
280
+
281
+ //以下位置情報の精度を設定、高精度にした
282
+
283
+ criteria.setAccuracy(Criteria.ACCURACY_FINE);
284
+
285
+ //基準を満たすプロバイダ名を取得する
286
+
287
+ String provider = locationmanager1.getBestProvider(criteria, true);
288
+
289
+ // 最後の位置情報取得
290
+
291
+ location1 = locationmanager1.getLastKnownLocation(provider);
292
+
293
+
294
+
295
+ double lat = location1.getLatitude();
296
+
297
+ double lon = location1.getLongitude();
298
+
299
+ latlong = new LatLng(lat, lon);
300
+
301
+ mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlong, 19));
302
+
303
+
304
+
305
+ mButton=(Button)getActivity().findViewById(R.id.button) ;
306
+
307
+ mButton.setOnClickListener(this);
308
+
309
+
310
+
311
+ //プロバイダーに基づいた リスナー を登録する
312
+
313
+ //最低0秒、最低0mで発火、これより細かい更新はされない
314
+
315
+
316
+
317
+ //locationmanager1.removeUpdates(this);
318
+
319
+
320
+
321
+ }
322
+
323
+
324
+
325
+ }
326
+
327
+
328
+
329
+ public void onClick(View view){
330
+
331
+ switch (view.getId()) {
332
+
333
+ case R.id.button:
334
+
335
+ if (ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[0]) == GRANTED ||
336
+
337
+ ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[1]) == GRANTED) {
338
+
339
+
340
+
341
+ locationmanager1.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
342
+
343
+ locationmanager1.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
344
+
345
+ }
346
+
347
+ break;
348
+
349
+ }
350
+
351
+ }
352
+
353
+
354
+
355
+ // アクセス許可のダイアログで操作を行ったときに呼ばれるメソッド
356
+
357
+ @Override
358
+
359
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
360
+
361
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
362
+
363
+ if (requestCode == LOCATION_CODE) {
364
+
365
+ if (grantResults[0] == GRANTED) {
366
+
367
+ startLocation();
184
368
 
185
369
  } else {
186
370
 
371
+ // 拒否されたのならアプリ続行不可能
372
+
187
- throw new NullPointerException();
373
+ getActivity().finish();
188
374
 
189
375
  }
190
376
 
191
- } catch(NullPointerException e) {
192
-
193
- e.printStackTrace();
194
-
195
- }
196
-
197
-
198
-
199
-
200
-
201
- if (ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[0]) != GRANTED &&
202
-
203
- ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[1]) != GRANTED) {
204
-
205
- // ↓「アクセスを許可しますか?」
206
-
207
- requestPermissions(LOCATION_PERMISSION, LOCATION_CODE);
208
-
209
- } else {
210
-
211
- //許可されたら位置取得
212
-
213
- //下の行にNull
214
-
215
- startLocation();
216
-
217
- }
218
-
219
-
220
-
221
- }
222
-
223
-
224
-
225
- //許可されたら位置取得、のところ
226
-
227
- void startLocation() {
228
-
229
- if (ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[0]) == GRANTED ||
230
-
231
- ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[1]) == GRANTED) {
232
-
233
-
234
-
235
- // 許可を得られたことを確認できた段階で初めてsetContentView()を呼ぶ
236
-
237
- // onMapReady()が走るのはこれ以後になる
238
-
239
-
240
-
241
- //FusedLocationProviderClient mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(getActivity());
242
-
243
- SupportMapFragment mapFragment =(SupportMapFragment)getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
244
-
245
- mapFragment.getMapAsync(this);
246
-
247
- //この行にNul
248
-
249
- }
250
-
251
- }
252
-
253
-
254
-
255
- @Override
256
-
257
- public void onMapReady(GoogleMap googleMap) {
258
-
259
-
260
-
261
- mMap = googleMap;
262
-
263
- mMap.setMyLocationEnabled(true);
264
-
265
- Log.d("a","OKabc");
266
-
267
-
268
-
269
- if (ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[0]) == GRANTED ||
270
-
271
- ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[1]) == GRANTED) {
272
-
273
-
274
-
275
-
276
-
277
- Criteria criteria = new Criteria();
278
-
279
- //以下位置情報の精度を設定、高精度にした
280
-
281
- criteria.setAccuracy(Criteria.ACCURACY_FINE);
282
-
283
- //基準を満たすプロバイダ名を取得する
284
-
285
- String provider = locationmanager1.getBestProvider(criteria, true);
286
-
287
- // 最後の位置情報取得
288
-
289
- location1 = locationmanager1.getLastKnownLocation(provider);
290
-
291
-
292
-
293
- double lat = location1.getLatitude();
294
-
295
- double lon = location1.getLongitude();
296
-
297
- latlong = new LatLng(lat, lon);
298
-
299
- mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlong, 19));
300
-
301
-
302
-
303
- mButton=(Button)getActivity().findViewById(R.id.button) ;
304
-
305
- mButton.setOnClickListener(this);
306
-
307
-
308
-
309
- //プロバイダーに基づいた リスナー を登録する
310
-
311
- //最低0秒、最低0mで発火、これより細かい更新はされない
312
-
313
-
314
-
315
- //locationmanager1.removeUpdates(this);
316
-
317
-
318
-
319
- }
320
-
321
-
322
-
323
- }
324
-
325
-
326
-
327
- public void onClick(View view){
328
-
329
- switch (view.getId()) {
330
-
331
- case R.id.button:
332
-
333
- if (ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[0]) == GRANTED ||
334
-
335
- ActivityCompat.checkSelfPermission(getActivity(), LOCATION_PERMISSION[1]) == GRANTED) {
336
-
337
-
338
-
339
- locationmanager1.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
340
-
341
- locationmanager1.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
342
-
343
- }
377
+ }
378
+
379
+
380
+
381
+ }
382
+
383
+
384
+
385
+
386
+
387
+ @Override
388
+
389
+ public void onDestroy() {
390
+
391
+ super.onDestroy();
392
+
393
+ locationmanager1.removeUpdates(this);
394
+
395
+ }
396
+
397
+
398
+
399
+
400
+
401
+ @Override
402
+
403
+ public void onStatusChanged(String provider, int status, Bundle extras) {
404
+
405
+ switch (status) {
406
+
407
+ case LocationProvider.AVAILABLE:
408
+
409
+ Log.d("debug", "LocationProvider.AVAILABLE");
344
410
 
345
411
  break;
346
412
 
347
- }
348
-
349
- }
350
-
351
-
352
-
353
- // アクセス許可のダイアログで操作を行ったときに呼ばれるメソッド
354
-
355
- @Override
356
-
357
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
358
-
359
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
360
-
361
- if (requestCode == LOCATION_CODE) {
362
-
363
- if (grantResults[0] == GRANTED) {
364
-
365
- startLocation();
366
-
367
- } else {
368
-
369
- // 拒否されたのならアプリ続行不可能
370
-
371
- getActivity().finish();
372
-
373
- }
374
-
375
- }
376
-
377
-
378
-
379
- }
380
-
381
-
382
-
383
-
384
-
385
- @Override
386
-
387
- public void onDestroy() {
388
-
389
- super.onDestroy();
390
-
391
- locationmanager1.removeUpdates(this);
392
-
393
- }
394
-
395
-
396
-
397
-
398
-
399
- @Override
400
-
401
- public void onStatusChanged(String provider, int status, Bundle extras) {
402
-
403
- switch (status) {
404
-
405
- case LocationProvider.AVAILABLE:
413
+ case LocationProvider.OUT_OF_SERVICE:
406
-
414
+
407
- Log.d("debug", "LocationProvider.AVAILABLE");
415
+ Log.d("debug", "LocationProvider.OUT_OF_SERVICE");
408
416
 
409
417
  break;
410
418
 
411
- case LocationProvider.OUT_OF_SERVICE:
419
+ case LocationProvider.TEMPORARILY_UNAVAILABLE:
412
-
420
+
413
- Log.d("debug", "LocationProvider.OUT_OF_SERVICE");
421
+ Log.d("debug", "LocationProvider.TEMPORARILY_UNAVAILABLE");
414
422
 
415
423
  break;
416
424
 
417
- case LocationProvider.TEMPORARILY_UNAVAILABLE:
418
-
419
- Log.d("debug", "LocationProvider.TEMPORARILY_UNAVAILABLE");
420
-
421
- break;
422
-
423
425
  }
424
426
 
425
427
  }
@@ -522,33 +524,17 @@
522
524
 
523
525
 
524
526
 
525
-
526
-
527
527
  ```
528
528
 
529
529
 
530
530
 
531
531
  ### 試したこと
532
532
 
533
- try {
533
+
534
-
535
- startLocation();
534
+
536
-
537
- } catch(NullPointerException e) {
538
-
539
- e.printStackTrace();
540
-
541
- Log.d("tag","Null-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
535
+ マップフラグメントをフラグメントに埋め込む感じでやっていましたが、onMapreadyの処理が機能しないことからレイアウトにMapviewを使うことにしました。
542
-
543
- }
536
+
544
-
545
-
546
-
547
- を実行することでNullpointerExceptionが確認できました
537
+
548
-
549
-
550
-
551
- startLocation()内に Log.d("tag","Null-bbbbbbbbbbbbbbbbbbbbbbbbbb");を入れてビルドしたところ確認できたためstartLocationは実行されています。Nullなら実行されないのでは?と思ってしまうのですが。
552
538
 
553
539
  ### 補足情報(FW/ツールのバージョンなど)
554
540