###実現したいこと
AndroidStudioでGPSを表示するプログラムをGPSクラスを作り実現したいです。
###発生している問題
MainActivity内のみで処理を完結させると正常に実行されるが別ファイルのクラスを利用すると、アプリが異常終了する。
ビルドは通り、インストールはされます。
###該当のソースコード
MainActivity.java
java
1package com.example.myappsensortest1; 2 3import... 4public class MainActivity extends AppCompatActivity { 5 GPS gps = new GPS(); 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState){ 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.activity_main); 11 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 12 setSupportActionBar(toolbar); 13 14 TextView textGPS = (TextView) findViewById(R.id.textGPS); 15 textGPS.setText("緯度: " + gps.lat + "\n経度: " + gps.lng); 16 } 17}
GPS.java
java
1package com.example.myappsensortest1; 2public class GPS extends AppCompatActivity implements LocationListener { 3 4 private LocationManager manager; 5 public double lat; 6 public double lng; 7 8 public GPS(){ 9 manager = (LocationManager) getSystemService(LOCATION_SERVICE); 10 if (manager != null){ 11 manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); 12 } 13 } 14 15 @Override 16 public void onLocationChanged(Location location){ 17 lat = location.getLatitude(); 18 lng = location.getLongitude(); 19 manager.removeUpdates(this); 20 } 21 22 @Override 23 public void onStatusChanged(String s, int i, Bundle bundle){ 24 Log.i("INFO","Status changed..."); 25 } 26 @Override 27 public void onProviderEnabled(String s){ 28 Log.i("INFO","Provider enabled..."); 29 } 30 @Override 31 public void onProviderDisabled(String s){ 32 Log.i("INFO","Provider disabled..."); 33 } 34}
おそらく別ファイルのクラスでのやり取りをあまり理解していため、そのあたりがエラーの原因かと思っています。
AndroidManifestの記述とエミュレータ内でのGPS許可はONにしてあります。
###環境
AndroidStudioバージョン2.1.0
エミュレーター:Genymotion 2.6.0
GoogleNexus5X 6.0.0 API23
OS:Windows10