Android兼容性包问题

时间:2012-01-02 12:34:16

标签: android location package compatibility

您好我的应用是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是不可用的,但不是兼容软件包应该修复它吗?我怎么能解决这个问题?好多了

1 个答案:

答案 0 :(得分:1)

compatbility包不包含LocationManager。你可以在这里看到可用的包: http://developer.android.com/sdk/compatibility-library.html#Using