2011-12-05 64 views
1

我有一類問題,請登錄時運行java.lang.IllegalArgumentException異常:供應商== NULL

12-05 23:19:18.299: E/AndroidRuntime(15460): Caused by: java.lang.IllegalArgumentException: provider==null 
12-05 23:19:18.299: E/AndroidRuntime(15460): at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1017) 
12-05 23:19:18.299: E/AndroidRuntime(15460): at com.rbrlnx.lugares.editarLugar.onCreate(editarLugar.java:110) 
12-05 23:19:18.299: E/AndroidRuntime(15460): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-05 23:19:18.299: E/AndroidRuntime(15460): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722) 

而且代碼

 /************************************************************************************ 
    * 
    * Creamos un location manager, le establecemos unos criterios minimos para encontra 
    * 
    ***********************************************************************************/ 
    LocationManager locManager = (LocationManager)getSystemService(LOCATION_SERVICE); 
    Criteria criterio = new Criteria(); 
    criterio.setAccuracy(Criteria.ACCURACY_COARSE); 
    String mejorProvider = locManager.getBestProvider(criterio, true); 

     //Obtenemos la última posición conocida 
     final Location loc = locManager.getLastKnownLocation(mejorProvider); 
     latitud = loc.getLatitude(); 
     longitud= loc.getLongitude(); 

     //Me centro en el mapa 
      yo = new GeoPoint(
     (int)(latitud*1000000), 
     (int)(longitud*1000000)); 

只設置貓返回此錯誤最好的提供者,並得到最後一個知道的位置,但它崩潰了,誰知道爲什麼?

回答

5

這是因爲該行

String mejorProvider = locManager.getBestProvider(criterio, true); 

結果mejorProvider被空。是什麼導致了null?很難說。您要求的提供商不存在,或者您的清單中未啓用請求用戶位置的權限。

相關問題