先に進む前に、ユーザーのGPS位置を見つける必要があるアプリを作成しています。私はLocationListenerインターフェースを実装することによってこれを行っています。
public void onLocationChanged(Location loc) {
// TODO Auto-generated method stub
if(loc!=null){
loc.getLatitude();
loc.getLongitude();
text = "My current location is: " + "Latitude = " + loc.getLatitude() + "Longitude = " + loc.getLongitude();
Toast.makeText(getApplicationContext(),text, Toast.LENGTH_SHORT).show();
}
}
しかし、getApplicationContext()メソッドでNullPointerExceptionが発生しています。MyClass.thisも試しましたが、同じ結果になりました。onCreateに表示すると、トーストは正常に機能します。これに似た他の質問を調べましたが、どの解決策も機能しませんでした。次のように、onCreateでsetContentViewを使用しています。
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.gpslocation);
}
logcatはこれを示しています:
03-14 14:05:48.396: E/AndroidRuntime(604): FATAL EXCEPTION: main
03-14 14:05:48.396: E/AndroidRuntime(604): java.lang.NullPointerException
03-14 14:05:48.396: E/AndroidRuntime(604): at emergency.app.MyLocationListener.onLocationChanged(MyLocationListener.java:53)
03-14 14:05:48.396: E/AndroidRuntime(604): at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:227)
03-14 14:05:48.396: E/AndroidRuntime(604): at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:160)
03-14 14:05:48.396: E/AndroidRuntime(604): at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:176)
03-14 14:05:48.396: E/AndroidRuntime(604): at android.os.Handler.dispatchMessage(Handler.java:99)
03-14 14:05:48.396: E/AndroidRuntime(604): at android.os.Looper.loop(Looper.java:137)
03-14 14:05:48.396: E/AndroidRuntime(604): at android.app.ActivityThread.main(ActivityThread.java:4340)
03-14 14:05:48.396: E/AndroidRuntime(604): at java.lang.reflect.Method.invokeNative(Native Method)
03-14 14:05:48.396: E/AndroidRuntime(604): at java.lang.reflect.Method.invoke(Method.java:511)
03-14 14:05:48.396: E/AndroidRuntime(604): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-14 14:05:48.396: E/AndroidRuntime(604): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-14 14:05:48.396: E/AndroidRuntime(604): at dalvik.system.NativeStart.main(Native Method)
誰かがこれを克服する方法を教えてもらえますか?私はアンドロイドの初心者なので、本当に助けが必要です!