5

我针对 Android 4.2 (API 17) 进行编译,在我的清单中我有:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10"/>

在我使用的代码中:

String first = sdf.format(new   Date(context.getPackageManager().getPackageInfo(context.getPackageName(), 0).firstInstallTime)); 

字段 firstInstallTime 是在 API 9 中引入的。

Lint 没有警告我,即该字段在 API 8 中无效。我缺少什么,应该如何检测到这一点?

如果我针对 Android 2.2 (API 8) 进行编译,我会发现由于使用了新功能 (> API 8) 而导致的错误和一堆额外的错误,并且项目将无法编译。

(我知道在运行时处理此类事情,例如 Build.VERSION.SDK_INT)

最好的工作方式是什么?

为什么 lint 不起作用?

谢谢!

4

3 回答 3

5

这个答案可能会迟到,但您应该检查您的 lint 偏好

右键单击项目-> 属性-> Android Lint 首选项

然后在搜索框中搜索 min 并选择“UsesMinSDKAttributes”

最后选择“包括所有”按钮。希望支票刚刚被取消(我不得不做的只是为了修复一个愚蠢的 lint 错误)

祝你好运。

于 2013-04-12T21:31:52.063 回答
0

如果它是在 api level9 中引入的,那么试试这个。
<使用-sdk android:minSdkVersion="9" android:targetSdkVersion="10"/>

于 2012-12-16T15:03:49.947 回答
0

当https://code.google.com/p/android/issues/detail?id=56427得到解决时,它可能会起作用

于 2015-08-28T09:51:24.607 回答