-1

我将 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 做任何事情;只需抑制警告就足够了,或者会它后来以意想不到的方式破坏了我的程序)?

4

2 回答 2

2

此警告告诉您该应用程序可以在低于 13 的 SDK 上运行,getDefaultDisplay()自 API 13 起可用,因此如果您在较低的 SDK 上运行它,您将得到某种ClassNotFoundMethodNotFound异常。您必须为较低的 API 级别管理此代码。

要管理它,您可以使用android.os.Build.VERSION.SDK_INTwhich 返回当前 API 级别并添加@SuppressWarning注释

编辑:您收到此警告的原因是您使用的targetSdkVersionminSdkVersion清单中的要高

于 2013-10-08T10:06:19.593 回答
2

该错误说明您正在调用 API 13 之前不存在的方法或类,并且您的最小 API 为 8!在 manifest.xml 中更改为这些行

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

android:targetSdkVersion="13"如果高于 13,你可以保留你的项目

于 2013-10-08T10:06:45.680 回答