【问题标题】:what does this error mean and how do I get rid of it?这个错误是什么意思,我该如何摆脱它?
【发布时间】:2013-10-08 10:01:37
【问题描述】:

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

【问题讨论】:

  • 在清单中将您的 min sdk 更改为 13
  • 根据错误消息,如果用户使用 HoneyComb (API 12) 或更早版本,您的应用可能会中断,因为这些版本中尚不存在该方法。
  • 就像我说的,它是一个在 SDK1 中运行没有错误的项目的副本。为什么 SDK1 没有任何错误呢?顺便说一句,SDK1 是稍旧的版本。

标签: java android android-2.2-froyo android-sdk-2.3 android-sdk-2.1


【解决方案1】:

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

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

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

【讨论】:

  • 就像我说的,它是一个在 SDK1 中运行没有错误的项目的副本。为什么 SDK1 没有任何错误呢?顺便说一句,SDK1 是稍旧的版本。
  • 因为 SDK 变得更加智能 - 添加了新的警告,以便您更轻松地管理此类问题
  • 换句话说,如果你用旧的 SDK 编译它,这并不能解决问题,你只是不了解它。
  • 这意味着,至少对于我的测试设备,如果我只添加@SuppressWarnings,SDK2 应该与 SDK1 一样工作?
  • SDK1 和 SDK2 将毫无区别地运行。警告与最终申请无关。它们是代码分析器的产品,可以通知您潜在的问题。
【解决方案2】:

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

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

如果您的 android:targetSdkVersion="13" 高于 13,您可以将其保留在您的项目中

【讨论】:

  • android:minSdkVersion="8" 在 SDK1 中也是如此。为什么那里没有显示任何错误? (顺便说一句,SDK1 是稍旧的版本。)
  • 是的,它可能是 sdk1 和 sdk2 之间的版本差异,或者您可能遗漏了一些其他细节。检查 project.properties 文件,如果您有不同,请告诉我
  • project.properties 文件完全相同,在#'ed cmets 下方有target=android-18
  • 但上面 Mihail 的帖子似乎回答了这个问题
  • 根据developer.android.com/guide/topics/manifest/…"尽管它的名字,这个元素是用来指定API Level的,而不是SDK(软件开发包)或Android平台的版本号"所以是版本差异sdk1和sdk2之间
猜你喜欢
  • 2013-08-19
  • 2015-02-02
  • 2019-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 2013-12-08
  • 2012-07-09
相关资源
最近更新 更多