質問編集履歴
1
エラーメッセージを更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,23 +6,17 @@
|
|
6
6
|
https://akira-watson.com/android/fusedlocationproviderapi.html
|
7
7
|
|
8
8
|
###発生している問題・エラーメッセージ
|
9
|
-
現在地取得のjavaを
|
9
|
+
現在地取得のjavaを起動するとアプリが強制終了してしまいます。
|
10
10
|
|
11
11
|
エラーメッセージ
|
12
12
|
E/AndroidRuntime: FATAL EXCEPTION: main
|
13
|
-
Process: myapp.andoroidbook.jp.application2, PID:
|
14
|
-
|
15
|
-
at android.app.
|
16
|
-
at android.app.
|
17
|
-
at android.app.
|
18
|
-
at android.app.
|
19
|
-
at android.
|
20
|
-
at android.app.Activity.startActivity(Activity.java:3595)
|
21
|
-
at myapp.andoroidbook.jp.application2.EatActivity$2.onClick(EatActivity.java:68)
|
22
|
-
at android.view.View.performClick(View.java:4438)
|
23
|
-
at android.view.View$PerformClick.run(View.java:18422)
|
24
|
-
at android.os.Handler.handleCallback(Handler.java:733)
|
25
|
-
at android.os.Handler.dispatchMessage(Handler.java:95)
|
13
|
+
Process: myapp.andoroidbook.jp.application2, PID: 17662
|
14
|
+
java.lang.RuntimeException: Unable to start activity ComponentInfo{myapp.andoroidbook.jp.application2/myapp.andoroidbook.jp.application2.LocateActivity}: java.lang.NullPointerException
|
15
|
+
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
|
16
|
+
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
|
17
|
+
at android.app.ActivityThread.access$800(ActivityThread.java:135)
|
18
|
+
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
|
19
|
+
at android.os.Handler.dispatchMessage(Handler.java:102)
|
26
20
|
at android.os.Looper.loop(Looper.java:136)
|
27
21
|
at android.app.ActivityThread.main(ActivityThread.java:5001)
|
28
22
|
at java.lang.reflect.Method.invokeNative(Native Method)
|
@@ -30,6 +24,22 @@
|
|
30
24
|
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
|
31
25
|
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
|
32
26
|
at dalvik.system.NativeStart.main(Native Method)
|
27
|
+
Caused by: java.lang.NullPointerException
|
28
|
+
at myapp.andoroidbook.jp.application2.LocateActivity.onCreate(LocateActivity.java:70)
|
29
|
+
at android.app.Activity.performCreate(Activity.java:5231)
|
30
|
+
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
|
31
|
+
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
|
32
|
+
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
|
33
|
+
at android.app.ActivityThread.access$800(ActivityThread.java:135)
|
34
|
+
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
|
35
|
+
at android.os.Handler.dispatchMessage(Handler.java:102)
|
36
|
+
at android.os.Looper.loop(Looper.java:136)
|
37
|
+
at android.app.ActivityThread.main(ActivityThread.java:5001)
|
38
|
+
at java.lang.reflect.Method.invokeNative(Native Method)
|
39
|
+
at java.lang.reflect.Method.invoke(Method.java:515)
|
40
|
+
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
|
41
|
+
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
|
42
|
+
at dalvik.system.NativeStart.main(Native Method)
|
33
43
|
|
34
44
|
###該当のソースコード
|
35
45
|
EatActivity.java(略)からLocationActivity.javaをIntentで起動、そこからLocateActivity.javaを起動
|
@@ -148,33 +158,26 @@
|
|
148
158
|
public void onCreate(Bundle savedInstanceState) {
|
149
159
|
super.onCreate(savedInstanceState);
|
150
160
|
setContentView(R.layout.activity_locate);
|
151
|
-
|
152
|
-
// Fine か Coarseのいずれかのパーミッションが得られているかチェックする
|
153
|
-
// 本来なら、Android6.0以上かそうでないかで実装を分ける必要がある
|
154
161
|
if (ActivityCompat.checkSelfPermission(getApplication(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
|
155
162
|
&& ActivityCompat.checkSelfPermission(getApplication(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
|
156
163
|
|
157
|
-
/** fine location のリクエストコード(値は他のパーミッションと被らなければ、なんでも良い)*/
|
158
164
|
final int requestCode = 1;
|
159
165
|
|
160
|
-
// いずれも得られていない場合はパーミッションのリクエストを要求する
|
161
166
|
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, requestCode );
|
162
167
|
return;
|
163
168
|
}
|
164
169
|
|
165
|
-
// 位置情報を管理している LocationManager のインスタンスを生成する
|
166
170
|
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
|
167
171
|
String locationProvider = null;
|
168
172
|
|
169
|
-
// GPSが利用可能になっているかどうかをチェック
|
170
173
|
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
|
171
174
|
locationProvider = LocationManager.GPS_PROVIDER;
|
172
175
|
}
|
173
|
-
|
176
|
+
|
174
177
|
else if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
|
175
178
|
locationProvider = LocationManager.NETWORK_PROVIDER;
|
176
179
|
}
|
177
|
-
|
180
|
+
|
178
181
|
else {
|
179
182
|
Intent settingsIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
|
180
183
|
startActivity(settingsIntent);
|
@@ -229,8 +232,6 @@
|
|
229
232
|
|
230
233
|
```
|
231
234
|
|
232
|
-
###試したこと
|
233
|
-
LocationActivity.javaのsetContentView()でブレークポイントをいれるも、ブレークする前に終了しているみたいです。
|
234
235
|
|
235
236
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
236
237
|
|