2011-12-05 56 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?很难说。您要求的提供商不存在,或者您的清单中未启用请求用户位置的权限。

相关问题