【问题标题】:Stuck with @SuppressLint("NewApi") (developer.android.com/training/basics/firstapp/starting-activity)卡在@SuppressLint("NewApi") (developer.android.com/training/basics/firstapp/starting-activity)
【发布时间】:2013-02-01 09:56:36
【问题描述】:

我是 Android 的初学者,目前仍坚持这个问题:http://developer.android.com/training/basics/firstapp/starting-activity.html

创建第二个活动部分,当我尝试使用代码时:

public class DisplayMessageActivity extends Activity {

    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_display_message);

        // Make sure we're running on Honeycomb or higher to use ActionBar APIs
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            // Show the Up button in the action bar.
            getActionBar().setDisplayHomeAsUpEnabled(true);
        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

我收到以下错误:

@SuppressLint("NewApi") -> 注解类型 SuppressLint 的属性值未定义。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) -> HONEYCOMB 无法解析或不是字段。

getActionBar().setDisplayHomeAsUpEnabled(true); -> 方法 getActionBar() 未为 DisplayMessageActivity 类型定义。

NavUtils.navigateUpFromSameTask(this); -> NavUtils 无法解析

有人告诉我如何解决吗? 这是我导入的:

import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;

非常感谢!

【问题讨论】:

  • 你的应用程序定位的 android API 代码是什么。
  • 哦,我明白了,原来是 8。我现在把它设置为 15,还有两个问题:@SuppressLint("NewApi") NavUtils.navigateUpFromSameTask(this) 谢谢你的帮助,我还在更新我的 sdk。
  • @Lạng Hoàng 如果您找到了解决方案,请将其发布为您的答案。
  • 大家好,谢谢大家。我刚刚再次尝试使用从developer.android.com/sdk/index.html#download 下载的 ADT,按照 eclipse 的提示导入新的东西,现在一切正常。完整导入列表如下:import android.os.Bundle;导入android.app.Activity;导入android.view.MenuItem;导入 android.support.v4.app.NavUtils;导入 android.annotation.SuppressLint;导入android.os.Build;无论如何,这个问题已经解决了,再次感谢大家。

标签: android


【解决方案1】:

SuppressLint 注释已添加到 API 级别 16。您需要:

  • 将您的构建 SDK 设置为 16 或更高版本,或者
  • tools/support/annotations.jar从您的Android SDK复制到项目libs

【讨论】:

  • targetsdk 必须是 16 吗?这就是你的意思?
  • @MiguelRivera Build sdk,你编译的那个。在基于 Eclipse/ADT 的工具的 project.properties 中定义。
  • @MiguelRivera 设置target=android-16(或更高)后,清理并重建。
【解决方案2】:

导入android.annotation.SuppressLint;

【讨论】:

  • 你好,这是一个额外的库,我在尝试导入时得到这个“导入 android.annotation 无法解析”。
【解决方案3】:

我遇到了完全相同的问题。 CTRL-SHIFT-o(组织导入)为我填补了缺失的导入。

【讨论】:

  • 这正是我所需要的,它解决了我所有的错误。干杯。
【解决方案4】:

您的构建目标未设置为 API 级别 14 或更高。这不是错误,请关闭此问题。

(在 Eclipse 中:项目 => 属性 => Android)

【讨论】:

    【解决方案5】:

    将您的光标移到“SuppressLint”上,它将带​​有红色下划线。选择修复选项“修复项目设置”。从弹出列表中选择“添加存档'annotations.jar'。祝你有快乐的一天。

    【讨论】:

      【解决方案6】:

      如果你设置@SuppressLint("NewApi")这一行,它就可以工作 在类声明之上! (在this lesson 中,这条线位于onCreate 内,这是行不通的!)

      【讨论】:

        【解决方案7】:

        ctrl+shift+O 导入库和 ctrl+s 保存使错误消失了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-12-28
          • 1970-01-01
          • 2017-10-05
          • 2023-02-05
          • 1970-01-01
          • 1970-01-01
          • 2018-08-30
          相关资源
          最近更新 更多