您好我的应用是Google api地图。我希望它兼容旧的Android版本sso我已经在libs文件夹中包含了android兼容包jar v4。在我的清单中,我有:
我有这项服务,它在我的应用程序启动时启动,我希望它更新位置,然后当加载地图时它会更快。所以我在我的服务的onCreate方法中有这个代码:
Criteria criteria = new Criteria();
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (isEmulator() || !isOnline())
provider = LocationManager.GPS_PROVIDER;
else
provider = locationManager.getBestProvider(criteria, false);
try {
Location location = locationManager.getLastKnownLocation(provider);
if(location==null || location.getTime()>(new Date().getTime()-Constants.TIEMPO_ENTRE_LOC_UPDATE))
locationManager.requestSingleUpdate(provider, null);
}catch (Exception e){
e.printStackTrace();
}
当我在模拟器上启动应用程序时(google apis level 7)我收到此错误:
01-02 12:21:30.971:E / AndroidRuntime(523):java.lang.NoSuchMethodError:android.location.LocationManager。 requestSingleUpdate 01-02 12:21:30.971:E / AndroidRuntime(523):at com.tresipunt.scm.MyService.onCreate(MyService.java:78)
当然,我知道在早期的apis中,requestingleupdate是不可用的,但不是兼容软件包应该修复它吗?我怎么能解决这个问题?好多了
答案 0 :(得分:1)
compatbility包不包含LocationManager。你可以在这里看到可用的包: http://developer.android.com/sdk/compatibility-library.html#Using