如何强制不在minSdkVersion中的api方法的编译错误

时间:2013-04-19 03:45:29

标签: android

我一直在旧设备上遇到NoSuchMethodException崩溃,我想知道为什么eclipse IDE至少没有给我使用旧设备上尚不支持的方法的警告。我正确地在AndroidManifest.xml中设置了minSDKVersion字段。如果我使用无法在minSdkVersion设备上运行的方法,是否有编译错误或至少出现警告?

我的AndroidManifest.xml中有以下内容

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

我不想用旧设备测试这个巨大应用的每个屏幕和功能。

谢谢!

2 个答案:

答案 0 :(得分:2)

将NewApi和InlineApi的Lint检查设置为错误。

right click project --> Properties --> Android Lint Preferences.   

查找NewApiInlineApi并将Severity框设置为错误或致命。

答案 1 :(得分:1)

你可以使用lint。 Android Lint是ADT 16(和工具16)中引入的一种新工具,可以扫描Android项目源中的潜在错误。它既可以作为命令行工具使用,也可以与Eclipse

集成

如果你使用的方法无法在minSdkVersion上运行,那么lint会大声说该方法无法使用。

http://developer.android.com/tools/help/lint.html

使用eclipse

http://tools.android.com/recent/neweclipselintui

提供的支票清单

http://tools.android.com/tips/lint-checks

Wrtiing自定义lint规则

http://tools.android.com/tips/lint-custom-rules

UsesMinSdkAttributes

摘要:检查是否已定义最低SDK和目标SDK属性

优先级:9/10 严重性:警告 类别:正确性

清单应包含定义最小值的元素 应用程序运行所需的最低API级别以及目标 version(您测试版本的最高API级别。)

更多信息:http://developer.android.com/guide/topics/manifest/uses-sdk-element.html