1

我正在尝试合并 try/catch 以支持已弃用的方法。

如果我的 minSdkVersion 太低而无法支持我正在尝试的(较新的)方法,Eclipse 会看到一个错误,因为它(尚)不受支持。如何让 Eclipse 忽略这一行?

这是代码:

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();

    try { 
        display.getSize(size); 
        width = size.x; 
        height = size.y; 
    } catch (NoSuchMethodError e) {
        width = display.getWidth();
        height = display.getHeight(); 
    } 

对于 14 之前的 minsdkversion,eclipse 不喜欢 Display.getSize(size)。

或者,有没有更好的方法来做到这一点?

谢谢

4

3 回答 3

1

这是反射有用的地方:尝试getSize从类中获取方法。如果你成功获得它,使用它,否则回退到旧样式。

于 2012-09-27T20:30:25.907 回答
1

我相信这是相关的:如何检索 android sdk 版本?

Build.VERSION.SDK_INT 是您需要的。简单的 if/else 替换 try/catch。

于 2012-09-27T20:38:35.670 回答
0

如果您将构建目标提高到 Jelly Bean,则可以使用@SuppressLint("NewApi")忽略该错误。我认为没有其他方法可以忽略新 Android 工具的错误。

编辑:实际上,您不需要将构建目标提高到 Jelly Bean。我目前在 4.0.3 中使用 SuppressLint。您只需要 SDK 附带的 Android 注释 JAR。

于 2012-09-27T20:30:06.820 回答