我在两个不同的文件夹(略有不同的版本)中安装了Android SDK,同时打开了两个相同项目的副本(即SDK1 - Project1; SDK2 - > Project1的副本)。 SDK1工作正常,但SDK2显示错误
Call requires API level 13 (current min is 8): android.view.Display#getSize
在
行getWindowManager().getDefaultDisplay().getSize(p);
在MainActivity类中。我该如何删除?
(我很确定这与编译器选项或其他东西有关; SDK2建议我只需将@SuppressWarning添加到onCreate(),而我不需要对SDK1做任何事情;只是抑制警告就足够了,或者会它会以意想不到的方式破坏我的程序)?
答案 0 :(得分:2)
此警告告诉您应用程序可以在低于13的SDK上运行,getDefaultDisplay()
自API 13开始可用,因此如果您在较低的SDK上运行它,您将获得某种ClassNotFound
或MethodNotFound
例外。您必须为较低的API级别管理此代码。
要对此进行管理,您可以使用返回当前API级别的android.os.Build.VERSION.SDK_INT
并添加@SuppressWarning
注释
编辑:您收到此警告的原因是您在清单中使用的targetSdkVersion
高于minSdkVersion
答案 1 :(得分:2)
错误解释本身您正在调用API 13之前不存在的方法或类,并且您的min API为8!更改为manifest.xml中的这些行
<uses-sdk
android:minSdkVersion="13"
android:targetSdkVersion="13" />
如果项目超过13
,您可以将android:targetSdkVersion="13"
保留在项目中