【问题标题】:How to remove "Call requires API level" error?如何删除“调用需要 API 级别”错误?
【发布时间】:2012-09-27 23:07:38
【问题描述】:

我在 Eclipse 中收到此错误:调用需要 API 级别 14(当前最低为 8):android.app.ActionBar#setHomeButtonEnabled

这是代码:

if(android.os.Build.VERSION.SDK_INT>=14) {
    getActionBar().setHomeButtonEnabled(false);
}

在清单中:

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

如何消除这个错误?

【问题讨论】:

  • 为什么Android Studio 会在popRunReportUp() 上给我这个警告,这是>我

标签: android eclipse


【解决方案1】:

在方法签名上方添加@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) 行,其中Build.VERSION_CODES.ICE_CREAM_SANDWICH 的计算结果为14,即Ice Cream Sandwich 的API 版本代码。

像这样:

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public void yourMethod() {
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        getActionBar().setHomeButtonEnabled(false);
    }
}

【讨论】:

  • @REACHUS 是的,@TargetApi 只是告诉编译器我们知道并已处理该错误,从而使编译器安静下来。
【解决方案2】:

注意:接受的answer 已过时。

Android Studio 3.0 Beta 7 中,您不再需要@TargetApi 注释。
看来 lint 检查现在更智能了。

这样就够了:

public void yourMethod() {
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        getActionBar().setHomeButtonEnabled(false);
    }
}

【讨论】:

  • 你是对的,但是这个方法不能用于构造函数,其中“super”必须是第一个调用的指令。
猜你喜欢
  • 2013-05-11
  • 2014-04-22
  • 2022-01-23
  • 2022-10-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多