ユーザーがボタンをクリックするたびにデバイスの現在位置を取得するコードを書きました。しかし、私がリスナーを呼び出すと、アプリがちょうどクラッシュします。誰かが私が間違っていたことの洞察を私に与えることはできますか?前もって感謝します。Android Location Managerが呼び出されたときにアプリがクラッシュする
public void onStartService()
{
addListenerLocation();
}
@SuppressLint("NewApi")
private void addListenerLocation()
{
mLocationManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
LocationListener mLocationListener = new LocationListener()
{
public void onLocationChanged(Location location)
{
currentLat = location.getLatitude();
InstanciaObjetos.setPEDLAT(currentLat);
currentLon = location.getLongitude();
InstanciaObjetos.setPEDLON(currentLon);
}
public void onStatusChanged(String provider, int status, Bundle extras)
{
//TODO -- Barney says what should happen
}
public void onProviderEnabled(String provider)
{
Location lastKnownLocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(lastKnownLocation!=null)
{
currentLat = lastKnownLocation.getLatitude();
currentLon = lastKnownLocation.getLongitude();
}
}
public void onProviderDisabled(String provider)
{
}
};
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0, mLocationListener);
}
私はちょうどonStartService()を呼び出します。私に必要なことは他にありますか?
私はlogcatを添付しました。今私は何をする必要があるかを理解しました(私は推測します)。代わりに、サービスのonCreate()
方法で
09-21 23:17:41.209 8861-8861/br.com.appvendasfs E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.appvendasfs, PID: 8861
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.view.View$DeclaredOnClickListener.onClick(View.java:4452)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.view.View$DeclaredOnClickListener.onClick(View.java:4447)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.IllegalStateException: System services not available to Activities before onCreate()
at android.app.Activity.getSystemService(Activity.java:5253)
at appVendasFS.DAO.PedidosDAO.addListenerLocation(PedidosDAO.java:47)
at appVendasFS.DAO.PedidosDAO.onStartService(PedidosDAO.java:40)
at appVendasFS.DAO.PedidosDAO.Inserir(PedidosDAO.java:97)
at appVendasFS.UI.TelaVenda.Inserir_Pedido(TelaVenda.java:813)
at appVendasFS.UI.TelaVenda.onClick_botao(TelaVenda.java:593)
at java.lang.reflect.Method.invoke(Native Method)
at android.view.View$DeclaredOnClickListener.onClick(View.java:4447)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
PLSは、クラッシュレポート – Saveen
http://s2.quickmeme.com/img/94/94eb289f247f6e711a9975bed6783d1db4a15af4a9f2b7cd8f1a560a3bfb540a.jpgを追加; D – jdstaerk