2013-08-17 217 views
24

为什么我在Android开发中陷入如此艰难的时刻?多年来,我一直在用各种语言进行开发,出于某种原因,我似乎无法超越Android平台上的“jeez-i-still-feel-a-no-no”舞台。将支持库添加到Android项目

所以我想添加一个操作栏到我的Android 2.3.3项目。没问题,对吧? Android开发者网站有一篇很好的文章,解释了如何去做。当然,它涉及到添加appcompat v7支持库。没问题,即使这是在this page上逐步记录。但是,就像Android中的每一个这样的练习一样,我发现您可以完全按照页面要求做的事情做,但如果没有大量Google搜索来修复之后遇到的错误,它仍然无法正常工作。

因此,我已经按照上面链接中的“使用Eclipse”部分的“在库中添加资源”中的步骤进行操作。我得到的第一个错误是无法解析目标'android-16'。没问题,这一个我可以自己找出来,但我很好奇,在我一直遵循的文件中有什么会告诉我,我需要安装Android 4.1.2(API16)?我刚刚读过它还是应该自己知道,要做我想做的事情,我需要API16?

没关系,至少我可以解决这个问题,但后来我遇到了一个新问题。当我在Android的支持-V7-compat的库添加到我的项目,然后单击确定按钮,控制台输出亮有错误,第一个是:

C:...\android-support-v7-appcompat\res\values-v14\styles_base.xml:24: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.ActionBar'.

和其他60个多错误类似但是针对不同的名字。

我真的很感激,如果有人能帮助我在这里。很显然,我想知道如何解决这个问题,但如果有人可以给我一些关于如何渡过这个学习这个新开发环境的令人沮丧的阶段的提示,我会非常感激。除了按照Android Developers网站上的说明逐步进行操作之外,我应该采取什么不同的措施来避免遇到这类错误?

回答

22

好吧,我想我应该发布一个答案,因为我最终设法解决了我自己的问题。

事实证明,我必须使用Android 4.2.2的构建目标,而不管我是专门为Android 2.3.3开发的事实 - 我的意思是,这就是为什么我最终使用支持库的原因。我想有可能其他一些较低的目标(但高于2.3.3)仍然可以工作,我只是使用了我安装的最高目标,并解决了问题。

我应该如何从Android开发者网站的分步说明中了解这一点对我来说是一个谜。我决定尝试更改targetSdkVersion的原因是因为page referenced in the question中的最后一节。它的内容是:“如果您正在使用支持库增加现有应用程序向早期版本的Android API的向后兼容性,请确保更新您的应用程序的清单。”现在我不增加现有应用程序的向后兼容性。我正在更改一个以2.3.3为目标的现有应用程序,以便能够包含一个Action Bar(更像是“向前兼容性”)。我尝试升级targetkSdkVersion,虽然我出于想法和看到,它看起来很有效。

+1

好吧,这是一个很好的帖子,必将帮助某人。 – IanB

+7

为了以防万一它有助于...我在一个新的项目中创建了一个新的工作区的appcompat库项目,并且当我导入代码时,我得到了这个“Unable to resolve target'android-16'”错误。我发现的解决方案是将android:targetSdkVersion更改为我的主项目所需的版本(18个包含Google API)。然后我再次关闭并再次打开图书馆项目,一切正常。 –

+0

@ Marina.Eariel你的方法对我来说毫无瑕疵:) – kpsfoo

0

您已经查明的所有重要文件及有关部分“添加库的资源”:

http://developer.android.com/tools/support-library/setup.html

错误表明你的项目是不是能够找到这些资源。请仔细检查以下内容:

  1. 您已检查“是图书馆”关于库项目

  2. 在该节

  3. 你描述你已经出口了库项目的罐子添加库项目作为您的应用项目的参考

  4. 您已将android-support-v4.jar添加到您的应用项目的libs文件夹中

如果这完全正确,请检查eclipse是否有任何错误消息 - 它是库项目还是像普通圣诞树一样点亮的应用程序项目?

+0

谢谢但不是,这些都不是。我已经检查并仔细检查过,所有这些都是正确的。这是应用程序项目,只要我已经将库项目添加到该项目中,就会发生错误。 –

3

不知道它是否对您有所帮助,但我一直在努力解决类似问题几个小时,最终设法解决它。就我而言,在我自己的项目的styles.xml文件中,我在父属性中以错误的方式引用了AppCompat样式。

我所用:

<style name="AppBaseTheme" parent="android:Theme.AppCompat"> 

,我应该用:

<style name="AppBaseTheme" parent="@style/Theme.AppCompat"> 

我的错误是在参考主题。

+1

哈哈。这不是解决方案,但是当它发生时,当我解决了我的问题(当解决方案作为答案时),当另一个问题开始出现时,解决方法如下:-) –

0

首先检查您是否按照developers site中的说明完成了所有描述的步骤。那么,对于错误:

Unable to resolve target 'android-16'

确保已安装API16,如果你已经在你的清单中提到的targetsdk至16时未安装API16的SDK出现这种错误。您可以安装API或将项目的targetApi编辑为所需的最低版本,对于您正在使用的支持库,我认为API 11是最低要求的Android版本。

android:Widget.Holo.ActionBar

在您的项目中修复targetsdk后,还应该修复此错误。自从使用Holo.ActionBar以来,您需要将您的项目定位到最低支持的API级别即。 11或更高。

+0

甚至出现此错误如果我们直接针对API级别18并且没有安装API Level 16。 – kpsfoo

1

我发现将Android目标设置为2.3.3的库项目android-support-v7-appcompat解决了这个问题。您不需要将项目目标设定得更高,但图书馆的目标更低。

0

我遇到了类似的问题。使用API​​ 18,ADT。

要解决“无法解决目标'android-16'问题”,我删除了导入lib项目,并重复教程说。

然后我发现我无法真正“添加”库到我的项目。 (在“库”窗格中,单击“添加”。there不是那个细节。 1.在您的项目 - >属性 - > Java构建路径 - >库 - >添加库... - > Android的类路径容器 - >选择的lib项目 2.在项目 - >属性 - > Android的 - >添加 - >选择的lib - >申请

欢呼

0

下面是我在添加v7时避免了错误“无法解析目标'android-16'”。

首先,我按照eclipse中的资源添加支持库的说明进行操作。在步骤4之后,我单击完成。那是当我看到错误消息,android-support-v7-appcompat]无法解析目标'android-16'。

二,我看了这篇文章。我也打开了下载管理器,但并不需要更新任何东西。为了确保我完全按照正确的步骤执行,我删除了android-support-v7-appcompat项目并重新开始。

这是第二次,我没有检查任何不同的盒子,毕竟。但是,我在步骤4也没有发现错误。谁能说出原因?

谢谢,德瓦德,你在这个问题上表达了同样的挫折感。经验是唯一的出路吗?

0

如果您的某些资源xml文件找不到它们各自的AppCompat引用,请确保您还将支持库添加到您的项目属性中。在项目

2)选择性能

1)右键点击你的项目:你这样做的。 (菜单的底部)

3)然后在Android新弹出窗口

4)在库部分的左侧菜单上,单击“添加按钮”

5 )选择相应的库。 (如果没有显示,请检查它们是否已显示在弹出式菜单的“库”窗口中,如果所需库中有红色x,请尝试首先解决该问题。)

6 。)一旦所需库旁边出现绿色复选标记,请确保库部分中的“Is Library”选项未被选中。

7.)点击应用。

8.)关闭弹出式菜单。

如果这不起作用,让我知道,我可以帮助你。我在这个问题上花了三个小时,所以我知道几乎所有可能出现的问题。

0

转到项目 - >取消自动构建

转到项目 - >清除...,既干净图书馆项目和您的应用程序项目

导出你的应用程序作为签署APK而自动构建是仍然禁用

相关问题