【发布时间】:2014-07-09 16:38:26
【问题描述】:
在 Lint 运行不成功后,我尝试通过添加 @TargetApi(Build.VERSION_CODES.HONEYCOMB) 属性来修复错误,但下次运行 Lint 时,getScaleX() 函数仍然显示以下错误:
任何人都可以对此有所了解吗?
【问题讨论】:
标签: android eclipse eclipse-plugin android-lint
在 Lint 运行不成功后,我尝试通过添加 @TargetApi(Build.VERSION_CODES.HONEYCOMB) 属性来修复错误,但下次运行 Lint 时,getScaleX() 函数仍然显示以下错误:
任何人都可以对此有所了解吗?
【问题讨论】:
标签: android eclipse eclipse-plugin android-lint
如消息窗口中所述,对getScaleX() 的调用需要 API 级别 11 (Honeycomb)。该消息还表明最低 API 级别为 9(根据 minSdkVersion 设置)。
Lint 工具警告您正在使用仅在较新的 SDK 版本 (11+) 中支持的方法,但已设置为允许应用程序在不支持此方法的设备上运行(SDK 版本 9 和 10 )。
在此处查看有关 NewApi Lint 检查功能的更详细说明:(搜索 NewApi)http://tools.android.com/tips/lint-checks
谨慎禁止此类警告,我建议使用以下内容保护代码:
if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
...getScaleX()...
}
【讨论】:
if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)?如果不是,那么如果您在较早的 SDK 版本(在设备上)上运行,那么我预计代码会失败。
@SuppressLint("NewApi")标记方法(而不是@TargetApi?或者把@TargetApi(Build.VERSION_CODES.HONEYCOMB)放在类定义的顶部?我有类似的代码(使用Android Studio,而不是 Eclipse),当我将 @TargetApi 更改为目标版本时,尽管 minSdkVersion 较低,但不再出现 Lint 消息。