在SDK更新(23)之后,我得到了这个lint错误,我没有对我的代码做任何更改,它在api级别为9的设备上运行良好。另外,我在代码中根本不调用android.app.活动#onCreateView。如果我单击自动修复,它会将@SuppressLint(NewApi)放入类的声明中@SuppressLint(NewApi)公共类MyActive扩展android.support.v4.app.FragmentActive
,这样错误就会消失,我想确定这是否是要走的路。
如用户5292387所述,添加了oncreateview。而不是抑制我使用的线头
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public View onCreateView(View parent, String name, Context context, AttributeSet attrs)
{
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
super.onCreateView(parent, name, context, attrs) :
super.onCreateView(name, context, attrs);
}
对super的第一个调用是针对运行蜂巢Android操作系统及更高版本的设备。对super的第二个调用是针对运行低于Android操作系统的设备。我认为它看起来更干净,而不是返回空值。然而,android文档确实指出,返回null将导致默认行为。这两种解决方案都应该有效,但我对返回null持怀疑态度,因为这可能会对Android SDK的后续版本产生不利影响。
@SuppressLint(“NewApi”)是Android Lint工具使用的注释。
代码中的某些内容不是最佳的,或者可能会崩溃。通过将NewApi传递到那里,您将抑制所有警告,这些警告将告诉您是否正在使用在您的版本之后引入的任何API
要了解更多信息并做出决定,请查看Android Lint Checks:这里
你也可以使用@TargetApi。
不同之处在于使用@TargetApi时,您可以通过参数声明您在代码中处理的API级别,这样,如果您稍后修改该方法以尝试引用比@TargetApi中引用的API级别更新的内容,则错误可能会再次弹出。
@TargetApi是更好的注释,允许您以更细粒度的方式告诉构建工具“好的,我修复了这一类问题”。
我也遇到了同样的问题。
如果你看一下活动类的javadoc(http://developer.android.com/reference/android/app/Activity.html#onCreateView(android.view.view、java.lang.String、android.content.Context、android.util.AttributeSet)),您将看到方法public view onCreateView(查看父对象、字符串名称、上下文上下文、AttributeSet attrs)被添加到API 11中。
我没有在类声明级别使用@SuppressLint(“NewApi”),而是将特定的方法添加到代码中,并抑制了方法声明的lint警告。就像这样:
@SuppressLint("NewApi")
public View onCreateView(View parent, String name, Context context, AttributeSet attrs)
{
if(Build.VERSION.SDK_INT >= 11)
return super.onCreateView(parent, name, context, attrs);
return null;
}
这样,将来添加到类代码中的任何内容仍将由lint检查,但lint将停止用错误标记此方法。
ETA:类的Javadoc表示两个onCreateView(...)方法都返回null作为默认行为,并且API 11之前的方法有一个空的实现。
问题内容: 我是JSON的新手。我按照本教程创建了示例应用程序。当我尝试将代码复制到我的日食时,它显示错误。 请指教。谢谢 问题答案: 转到android AndroidManifest.xml 在您的文件中是8 将SDK版本更改为9,如下所示
问题内容: 我是android的新手,并且正在开发android应用程序。但是我的包装行在MainActivity.java类中给出了此错误。谁能告诉我这的原因吗?这是我的课程,打包行给出了此错误。 问题答案: 首先,介绍一些细节。有不同 级别 的Android API,每个级别可能会引入新功能,如此处所示。 创建Android应用程序时,您指定运行应用程序的最低级别。这是在做与节:看到这里了解详
我的代码中有这样一行: 显示以下错误: 调用需要API级别16(当前最小值为14) 如果API级别较高,它是否限制了我的应用程序可以使用的设备数量?
我正在尝试添加运行时权限android(6.0.1)API 23,如果我使用SDK版本(最小和目标版本均为23)它很好,如下所示, 如果我改变android:minSdkVersion(小于23) 例如: 我在下面收到错误: 调用需要API级别23(当前最小值为14):android.app.Activity#requestPermissions,checkSelfPermission 对于以下两
我刚刚开始做Android开发,或多或少遵循http://developer.android.com/training/basics/firstapp/starting-activity.html教程,有一件事一直困扰着我:我有两个类,都是使用“Android活动”创建向导创建的: 和 Eclipse不断给我以下错误: 调用需要API级别11(当前最小值为8):android。应用程序。活动#ge
我想在android API中发送通知 我想我的Gradle文件也有问题。 我尝试添加一个if语句,条件是