Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t运行ActionBarCompat示例_Java_Android_Eclipse_Android Actionbar Compat - Fatal编程技术网

Java Can';t运行ActionBarCompat示例

Java Can';t运行ActionBarCompat示例,java,android,eclipse,android-actionbar-compat,Java,Android,Eclipse,Android Actionbar Compat,我在编译和运行Android 16的ActionBarCompat示例时遇到问题。我选择了API级别16作为构建目标,这似乎构建得很好,但当我尝试调试时,会弹出这些错误。当然,我可以更改清单中的最小API级别,但这有什么意义呢?我没有对样品做任何更改,为什么它不能正常工作 Class requires API level 14 (current min is 3): android.view.ActionProvider SimpleMenuItem.java /ActionBarCompat/

我在编译和运行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 suppres newApi添加到其中一个methoded中,现在它似乎运行良好。我更糊涂了。有人能解释一下发生了什么吗?

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

这些是他们的要求:


由于在冰激凌三明治上使用了本机操作栏及其相关类,该库要求它和您的项目都使用Android 4.0或更新版本编译。该项目还要求您在编辑器和可能使用的任何构建系统中使用JDK 1.6进行编译。

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

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

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


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

遗憾的是,这些示例并不是每个SDK迭代的最新示例。
-首先,您已将最小值设置为
sdkversion=3
?这对我来说似乎有点低。7(eclair)是我认为大多数项目应该关注的最低版本。 较低级别的版本有一个荒谬的市场份额,它将继续下降

-这些是线头警告。Lint对于Android来说有点陌生,这就是为什么这个示例不考虑它的原因。它告诉您代码中的潜在问题。此警告表示您正在调用可在3级终端上运行的代码中的14级类。您应该尝试使用
@TargetApi(14)
注释删除它们。此注释告诉Lint您知道自己在做什么,并且此代码至少只在sdk版本=14时运行


-另外,如果你想在任何版本的Android上使用actionbar,你真正想使用的是开源的actionbar Sherlock库。一步一个脚印:-)

当我进入项目>Properties>Android bulid目标选择时,我甚至没有API 14可用。搞什么鬼?为什么API 16不够好?应该有某种向后的兼容性,对吧?针对最新版本的Android是一个非常好的实践,谷歌也大力鼓励。理想情况下,你永远不应该瞄准比上一个版本更低的版本。事实是,我没有定义任何东西,这是谷歌制作的示例。另外,这不是一个警告,而是一个错误,但也许这就是你的意思:)此外,添加注释不应该修复无法运行的东西,对吗?注释不会改变java代码的行为,它们只是对java代码施加了一些限制(它们可能会导致错误,但不应该在AIK时删除它们)错误,是的。但是注释确实删除了它。试试看,注释只是告诉林特:相信我。我知道我在这里做什么。我强制执行了必要的条件,以确保它不会在较低的api级别上被调用。我想我明白了。抛出错误并阻止我运行的是Lint,而不是编译器本身。这有点道理。谢谢,基本上,答案是,这个示例有点过时了,在更新的环境中没有修改就不能运行?谢谢夏洛克的暗示,我一定会看一看的。SDK发展迅速,Android团队可能不够大,无法维护所有样本。我认为他们应该在这方面做得更好。。。完全的初学者可能会对这种问题感到有点迷茫。在Eclipse中,您可以使用快速修复功能查看问题的潜在修复。此外,我认为所有的Lint问题都有一个扩展的解释,只需点击几下即可访问。事实上,它是Android开发的一个伟大补充。如果没有它,如果你不检查你调用的对象的最低版本,你在测试应用程序时可能会有不好的惊喜。Lint不是一个编译错误。您可以在Eclipse中清除这些Lint错误。