为什么我很难进入Android开发阶段?多年来我一直在用各种语言进行开发,出于某种原因,似乎无法超越Android的“jeez-i-still-a-total-noob”舞台。
所以我正在尝试将Action Bar添加到我的Android 2.3.3项目中。没问题,对吧? Android开发者网站有一篇很好的文章解释了如何做到这一点。当然,它涉及添加appcompat v7支持库。没问题,即使在this page上逐步记录这一点。但是,就像在Android中几乎每一个这样的练习一样,我发现你可以完全按照页面告诉你做的那样,如果没有大量的谷歌搜索来修复你之后遇到的错误,它仍然无法工作。
所以我按照上面链接中“使用资源添加库”一节中的“使用Eclipse”中的步骤进行操作。我得到的第一个错误是无法解析目标'android-16'。没问题,这个我可以为自己弄清楚,但我很好奇,我一直在关注的文件中有什么东西可以告诉我我需要安装Android 4.1.2(API16)吗?我是刚刚读完它还是我自己知道,为了做我想做的事情,我需要API16?
没关系,至少我可以解决这个问题,但后来我遇到了一个新问题。一旦我将android-support-v7-compat库添加到我的项目并单击OK按钮,控制台输出就会出现错误,第一个是:
C:... \机器人支撑-V7-程序兼容性\ RES \值-V14 \ styles_base.xml:24: 错误:检索项目的父项时出错:找不到任何资源 匹配给定名称'android:Widget.Holo.ActionBar'。
和其他60个奇怪的错误是相似的,但对于不同的给定名称。
如果有人能帮助我,我真的很感激。显然我想知道如何解决这个特殊问题,但如果有人能给我一些关于如何通过这个非常令人沮丧的阶段学习这个新开发环境的技巧,我会非常感激。除了按照Android开发者网站上的说明一步一步地执行这些类型的错误之外,我应该做些什么呢?
答案 0 :(得分: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(看起来更像是“向前兼容性”)。我尝试升级targekSdkVersion虽然我没有想法,但是看,它有效。
答案 1 :(得分:3)
不知道它是否对你有所帮助,但我几个小时一直在努力解决类似的问题,最终设法解决了这个问题。就我而言,在我自己的项目的styles.xml文件中,我在父属性中以错误的方式引用了AppCompat样式。
我正在使用:
<style name="AppBaseTheme" parent="android:Theme.AppCompat">
我应该使用的地方:
<style name="AppBaseTheme" parent="@style/Theme.AppCompat">
我的错误在于对主题的引用。
答案 2 :(得分:1)
我发现将库目标android-support-v7-appcompat的Android目标设置为2.3.3解决了这个问题。您不需要将项目的目标设置得更高,但库的目标更低。
答案 3 :(得分:0)
您已经确定了所有重要文件和相关部分“添加资源库”:
http://developer.android.com/tools/support-library/setup.html
错误表明您的项目无法找到这些资源。请仔细检查以下内容:
您已在图书馆项目
您已按照该部分所述将罐子导出到图书馆项目中
您已将库项目添加为对应用项目的引用
您已将android-support-v4.jar添加到应用项目的libs文件夹中
如果这一切都是正确的,请检查eclipse是否有任何错误消息 - 是图书馆项目还是应用程序项目如同众所周知的圣诞树一样亮起来?
答案 4 :(得分:0)
首先检查您是否按照developers site中的说明完成了所有描述的步骤。然后,对于错误:
无法解析目标'android-16'
确保已安装API16,如果在未安装API16的sdk的情况下在Manifest中提到targetdk为16,则会发生此错误。您可以安装API或将项目的targetApi编辑为所需的最低版本,对于您正在使用的支持库我认为API 11是最低要求的Android版本。
机器人:Widget.Holo.ActionBar
一旦在项目中修复了targetsdk,也应修复此错误。由于要使用Holo.ActionBar,您需要将项目定位到最低支持的api级别,即。 11或更高。
答案 5 :(得分:0)
我遇到了类似的问题。使用API 18,ADT。
要解决“无法解决目标'android-16'问题”,我删除了导入lib项目并重复教程所说的内容。
然后我发现我无法将库“添加”到我的项目中。 (说明“在”库“窗格中,单击”添加“。there不是那么详细。 1.在您的项目中 - &gt;属性 - &gt; Java构建路径 - &gt;图书馆 - &gt;添加图书馆... - &gt; Android Classpath容器 - &gt;选择lib项目 2.在您的项目中 - &gt;属性 - &gt; Android - &gt;添加... - &gt;选择lib - &gt;应用
欢呼声
答案 6 :(得分:0)
以下是我在添加v7时避免错误“无法解析目标'android-16'”的方法。
首先,我按照eclipse中的资源添加支持库的说明进行操作。在第4步之后,我点击了Finish。那时我看到了错误信息,android-support-v7-appcompat]无法解析目标'android-16'。
其次,我读过这篇文章。我还打开了下载管理器,但不需要更新任何内容。为了确保我尽可能正确地遵循了这些步骤,我删除了android-support-v7-appcompat项目并重新开始。
这第二次我没有检查任何不同的盒子,毕竟。但是,我在第4步也没有错误。谁能说出原因?
谢谢,德瓦尔德,你在这个问题上表达了同样的挫折感。经验是唯一的出路吗?答案 7 :(得分:0)
如果某些资源xml文件找不到各自的AppCompat引用,请确保还将支持库添加到项目属性中。你这样做:
1。)右键单击项目中的项目
2.。)选择属性。 (菜单底部)
3。)点击新弹出窗口左侧菜单中的Android
4.。)在图书馆部分,点击&#34;添加按钮&#34;
5.)选择相应的库。 (如果没有显示,请检查它们是否已显示在弹出菜单的&#34; libraries&#34;窗口中。如果所需的库中有红色x,请先尝试解决该问题。)
6。)一旦所需的图书馆旁边有绿色复选标记,请确保&#34; Is Library&#34;未选择库部分中的选项。
7。)点击“应用”。
8。)关闭弹出菜单。
如果这不起作用,请告诉我,我可以帮助你。我花了三个小时研究这个问题所以我几乎知道所有可能出现问题的设置。
答案 8 :(得分:0)
转到项目 - &gt;取消选中自动构建
转到项目 - &gt;清理......,清理库项目和应用项目
将您的应用导出为已签名的APK,同时自动构建仍然无效