2016-09-19 4 views
1

사용자가 버튼을 클릭 할 때마다 기기의 현재 위치를 가져 오는 코드를 작성했습니다. 하지만 청취자에게 전화를 걸면 앱이 충돌합니다. 누구든지 내가 잘못한 것을 통찰 해 줄 수 있습니까? 미리 감사드립니다.Android 위치 관리자가 호출 될 때 앱이 다운 됨

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)  
+0

PLS는 충돌 보고서 – Saveen

+0

http://s2.quickmeme.com/img/94/94eb289f247f6e711a9975bed6783d1db4a15af4a9f2b7cd8f1a560a3bfb540a.jpg를 추가; D – jdstaerk

답변

1

전화 addListenerLocation();.

+0

난 '에서 onCreate() 메소드에 호출하고는했다. 감사합니다. –

+0

여러분을 환영합니다! 1 주셔서 감사합니다 :) – whitebrow

관련 문제