在Android 4.2上运行app,api仅在android 2.3中可用

时间:2014-07-29 08:20:04

标签: android

我有一个android库项目,我使用android 2.3私有API。我有使用这个库项目的主要android 4.2项目。我需要在android 4.2设备上运行这个项目。 (android 4.2在android 2.3中没有这个api) 每次我得到运行时异常时:

AndroidRuntime(1395): java.lang.NoSuchMethodError: android.content.pm.IPackageManager.getPackageInfo

我明白为什么会得到它; 但是有可能解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

由于getPackageInfo是在级别1中添加的API,因此听起来很奇怪。
见链接:http://developer.android.com/reference/android/content/pm/PackageManager.html#getPackageInfo(java.lang.String,int)

  1. 是否正确设置了Context(Activity,ApplicationContext等)?
    因为getPackageInfo()通常像下面这样使用,

    context.getPackageManager().getPackageInfo
    

    因此,如果上下文 packageManager 错误,则无法调用getPackageInfo。

  2. 刷新 - 清洁再做一次。有时候它有效。

  3. 当然,Android 4.2中存在getPackageInfo()。 (实际上,2.2~4.3)似乎android工作正常。