我在编译和运行 Android 16 的 ActionBarCompat 示例时遇到问题。我选择了 API 级别 16 作为构建目标,这似乎构建得很好,但是当我尝试调试时会弹出这些错误。当然,我可以更改清单中的最低 API 级别,但这有什么意义呢?我没有对示例进行任何更改,那么为什么它不能正常工作呢?

Class requires API level 14 (current min is 3): android.view.ActionProvider SimpleMenuItem.java /ActionBarCompat/src/com/example/android/actionbarcompat    line 129    Android Lint Problem

Class requires API level 14 (current min is 3): android.view.ActionProvider SimpleMenuItem.java /ActionBarCompat/src/com/example/android/actionbarcompat    line 134    Android Lint Problem

Class requires API level 14 (current min is 3): android.view.MenuItem.OnActionExpandListener    SimpleMenuItem.java /ActionBarCompat/src/com/example/android/actionbarcompat    line 155    Android Lint Problem

我完全困惑了,任何帮助将不胜感激。

更新:我添加了 @TargetApi(14) 注释,然后将 Lint supres newApi 添加到其中一种方法,现在它似乎运行良好。我更困惑了。有人能解释一下发生了什么吗?

有帮助吗?

解决方案

遗憾的是,这些样本不适合每个SDK迭代的日期。
- 首先第一次,你已经定了一分钟的世代古代古典?对我来说似乎有点低。7(Eclair)我认为大多数项目应该专注的最低版本。 较低级别的版本具有荒谬的市场份额,它将保持下降。

- 是棉绒警告。Lint是有点新的Android,这就是为什么这个样本不把它考虑在内。它告诉您代码中的潜在问题。此警告表示您在可以在3级终端上运行的代码中调用14级类。您应该尝试使用sdkversion = 3注释删除它们。此注释告诉Lint,您知道您正在执行的操作,此代码将仅为SDK版本= 14运行。

-also,如果要使用任何版本的Android使用actionBar,您真正想要使用的是开源actionBar Sherlock库。虽然是一步: - )

其他提示

在您的清单中,您定义 android:minSdkVersion="3", ,但您正在调用 API 级别 14 类/方法。

Lint 将检查这些类型的 API 调用并向您发出警告。

显然在 ActionBarCompat 检查当前的 API 级别以确保调用是安全的。

要删除警告,只需添加 @TargetApi(14) 在您进行调用的方法之前。

您需要将项目构建目标更改为API级别14..in(Project-> Properties-> Android)

这些是它们的要求:

由于使用本地动作栏及其相关类在冰淇淋三明治上,图书馆要求 它和您的项目是编译的Android 4.0或Newer 。该项目还要求您在编辑器和您可以使用的任何构建系统中使用JDK 1.6编译。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top