24

为什么我很难进入 Android 开发的大潮?多年来,我一直在使用各种语言进行开发,出于某种原因,似乎无法超越 Android 的“jeez-i-still-feel-a-total-noob”阶段。

所以我试图在我的 Android 2.3.3 项目中添加一个操作栏。没问题,对吧?Android 开发者网站上有一篇很好且清晰的文章,准确地解释了如何做到这一点。当然,它涉及添加 appcompat v7 支持库。没问题,即使这已在此页面上逐步记录。但是,与 Android 中的几乎所有此类练习一样,我发现您可以完全按照页面告诉您的操作,如果没有大量的谷歌搜索来修复您之后遇到的错误,它仍然无法工作。

因此,我已按照上述链接中“使用资源添加库”部分中“使用 Eclipse”下的步骤进行操作。我得到的第一个错误是Unable to resolve target 'android-16'。没问题,我可以自己解决这个问题,但我很好奇,我一直在关注的文档中是否有任何内容暗示我需要安装 Android 4.1.2 (API16)?我是刚读完它还是应该自己知道,要做我想做的事情,我需要 API16?

没关系,至少我可以解决这个问题,但是我遇到了一个新问题。一旦我将 android-support-v7-compat 库添加到我的项目并单击 OK 按钮,控制台输出就会亮起并显示错误,第一个是:

C:...\android-support-v7-appcompat\res\values-v14\styles_base.xml:24:错误:检索项目的父项时出错:找不到与给定名称匹配的资源 'android:Widget.Holo.ActionBar '。

其他 60 个奇怪的错误是相似的,但名称不同。

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

4

9 回答 9

22

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

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

我应该如何按照 Android 开发者网站上的分步说明知道这一点,这对我来说是个谜。我决定尝试更改 targetSdkVersion 的原因是问题中引用的页面的最后一部分。上面写着“如果您通过支持库将现有应用程序的向后兼容性提高到早期版本的 Android API,请确保更新您的应用程序的清单。” 现在我不会增加现有应用程序的向后兼容性。我正在更改一个以 2.3.3 为目标的现有应用程序,以便能够包含一个操作栏(看起来更像是“向前兼容性”)。我尝试升级 targekSdkVersion,但因为我没有想法,你瞧,它奏效了。

于 2013-08-18T07:16:19.433 回答
3

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

我正在使用:

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

我应该在哪里使用:

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

我的错误在于对主题的引用。

于 2013-08-18T03:06:40.607 回答
1

我发现将库项目 android-support-v7-appcompat 的 Android 目标设置为 2.3.3 可以解决此问题。您不需要将项目的目标设置得更高,但库的目标需要更低。

于 2013-08-22T16:05:26.073 回答
0

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

转到 Project -> Clean... ,清理库项目和您的应用程序项目

将您的应用导出为已签名的 APK,而自动构建仍处于禁用状态

于 2014-04-02T06:50:31.083 回答
0

您已经查明了所有重要的文档和相关部分“使用资源添加库”:

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

该错误表明您的项目无法找到这些资源。请仔细检查以下内容:

  1. 您已在库项目中选中“是库”

  2. 您已按照该部分中的说明导出了库项目中的 jar

  3. 您已添加库项目作为对您的应用项目的引用

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

如果这一切都绝对正确,请检查 eclipse 是否有任何错误消息 - 是像众所周知的圣诞树一样亮起的库项目还是应用程序项目?

于 2013-08-17T21:04:21.777 回答
0

如果您的某些资源 xml 文件找不到它们各自的 AppCompat 引用,请确保您还将支持库添加到您的项目属性中。您可以通过以下方式执行此操作:

1.)在项目中右键单击您的项目

2.) 选择属性。(菜单底部)

3.) 在新弹出窗口的左侧菜单中单击 Android

4.)在库部分,单击“添加按钮”

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

6.) 一旦所需库旁边有一个绿色复选标记,请确保未选中库部分中的“是库”选项。

7.) 单击应用。

8.) 关闭弹出菜单。

如果这不起作用,请告诉我,我可以帮助您。我在这个问题上花了三个小时,所以我几乎知道设置可能出错的所有可能的事情。

于 2014-03-12T23:38:04.003 回答
0

这是我在添加 v7 时如何避免错误“无法解析目标 'android-16'”的方法。

首先,我按照说明在 eclipse 中添加资源支持库。在第 4 步之后,我单击了完成。那是我看到错误消息的时候,android-support-v7-appcompat] Unable to resolve target 'android-16'。

其次,我读了这篇文章。我还打开了下载管理器,但不需要任何更新。为了确保我尽可能正确地遵循这些步骤,我删除了 android-support-v7-appcompat 项目并重新开始。

毕竟,这第二次我没有检查任何不同的框。但是,我在第 4 步也没有出错。谁能说出为什么?

谢谢,Dewald,你在这个问题中表达了我同样的挫败感。经验是唯一的出路吗?

于 2014-01-22T17:39:15.427 回答
0

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

为了解决“无法解决目标'android-16'问题”,我删除了导入库项目并重复教程所说的内容。

然后我发现我无法真正将库“添加”到我的项目中。(指令“在库窗格中,单击添加。”没有 那个详细信息。1. 在您的项目中 -> 属性 -> Java 构建路径 -> 库 -> 添加库... -> Android 类路径容器 -> 选择lib 项目 2. 在你的项目中 -> 属性 -> Android -> 添加... -> 选择 lib -> 应用

干杯

于 2013-10-29T02:08:45.010 回答
0

首先检查您是否按照开发者网站上的说明完成了所有描述的步骤。然后,对于错误:

无法解析目标“android-16”

确保您已安装 API16,如果您在 Manifest 中将您的 targetsdk 提到 16 而未安装 API16 的 sdk,则会出现此错误。您可以安装 API 或将项目的 targetApi 编辑为所需的最低版本,对于您使用的支持库,我认为 API 11 是所需的最低 android 版本。

android:Widget.Holo.ActionBar

一旦在您的项目中修复了targetsdk,也应该修复此错误。由于要使用 Holo.ActionBar,您需要将您的项目定位到最低支持的 api 级别,即。11 或更高。

于 2013-08-18T06:42:30.573 回答