【问题标题】:Understanding @SuppressLint("NewApi") annotation了解@SuppressLint("NewApi") 注释
【发布时间】:2013-05-17 04:49:53
【问题描述】:

我是一名安卓初学者。在尝试管理活动生命周期的代码时,我遇到了一个新事物。

package com.example.activitylaunch;

import android.os.Build;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

@SuppressLint("NewApi")
public class MainActivity extends Activity {

TextView mTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mTextView = (TextView) findViewById(R.id.text_message);

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
    {
        ActionBar actionBar = getActionBar();
        actionBar.setHomeButtonEnabled(false);
    }
    }

@Override
public void onDestroy(){
    super.onDestroy();
    android.os.Debug.stopMethodTracing();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

我很好理解代码,但它在 ActionBar SuppressLint 中出现错误。当我双击它时,正在添加@SuppressLint("NewApi")。这里@SuppressLint("NewApi")是什么意思?

【问题讨论】:

标签: java android eclipse android-lint


【解决方案1】:

@SuppressLint("NewApi") 是 Android Lint 工具使用的注解。

只要代码中的某些内容不是最佳的或可能崩溃,Lint 就会告诉您。通过在那里传递NewApi,您将抑制所有警告,这些警告会告诉您是否使用minSdkVersion 之后引入的任何API

查看完整的 Lint 检查列表 - 包括“NewApi” - 在此处:http://tools.android.com/tips/lint-checks

【讨论】:

  • 链接失效,请添加更新的链接
【解决方案2】:

来源:click here

除了测试您的 Android 应用程序是否满足其功能要求外,确保您的代码没有结构问题也很重要。结构不佳的代码会影响您的 Android 应用程序的可靠性和效率,并使您的代码更难维护。例如,如果您的 XML 资源文件包含未使用的名称空间,这会占用空间并导致不必要的处理。其他结构性问题,例如使用不推荐使用的元素或目标 API 版本不支持的 API 调用,可能会导致代码无法正确运行。

Android SDK 提供名为lint 的代码扫描工具,可帮助您轻松识别和纠正代码结构质量问题,而无需执行应用或编写任何测试用例。该工具检测到的每个问题都会通过描述消息和严重性级别进行报告,以便您可以快速确定需要进行的关键改进的优先级。您还可以配置问题的严重性级别以忽略与您的项目无关的问题,或提高严重性级别。该工具具有命令行界面,因此您可以轻松地将其集成到您的自动化测试过程中。

lint 工具会检查您的 Android 项目源文件是否存在潜在错误,并针对正确性、安全性、性能、可用​​性、可访问性和国际化进行优化改进。您可以从命令行或 Eclipse 环境中运行 lint

【讨论】:

  • -1 这个答案谈到了 Lint 的目的是什么,但没有提到任何关于 OP 的问题——为什么要添加对 NewApi 的抑制。
  • 对这个问题只字未提。
【解决方案3】:

该注解表示 Lint 应该忽略被注解元素的指定警告。 lint 应该忽略的一组警告(由 lint 问题 ID 标识)。指定无法识别的名称并不是错误。

查看详情:https://developer.android.com/reference/android/annotation/SuppressLint

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 2022-08-09
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    相关资源
    最近更新 更多