android - Android SDK 支持库出现问题

标签 android eclipse

所以我刚刚开始学习 Android 编程。一切都运行良好(顺便说一下,我使用 Eclipse 作为 IDE)。我只有这个问题。每次我制作一个新项目时,我选择 API 8 作为所需的最低 SDK,并选择一个主题(例如 Holo Light 和 Dark Action Bar),Eclipse 将始终导入一个NEW COPY Android 支持库 v7 (appcompat)。我知道这是旧设备上的 ActionBar 和 Fragments 所必需的(API 7 - 10)。但我不明白的是为什么 Eclipse 必须一直导入支持库的新副本(好吧,我刚刚开始学习,我认为支持库可以并且应该被编辑,我我不确定)。

因此,我制定了自己的解决方案。我按照所说的here来自 Android 开发者网站。我自己将支持库导入到我的 Eclipse 工作区中。然后我创建了一个新项目。因此,Eclipse(再次)导入了它自己的 appcompat-v7 支持库。我将其删除,然后在项目的“属性”上,将删除的 appcompat-v7 库替换为我之前添加的自己导入的 v7 库。

这本来是一个解决方案,但我遇到了一些问题

  • Eclipse 在我的 PROJECT_FOLDER/gen 中添加了一个新包,该包从我手动导入的支持库中命名,结果(我不明白为什么),它创建了自己的包R.java 文件(会导致类似名称冲突的效果)。也就是说,当我在代码中提到类似的内容时,搜索到的 R.java 文件不是正确的 R.java (而是重复的 R.java 文件)

    EditText editText = (EditText) findViewById(R.id.edit_message); // this shows an error because the duplicate R.java file contains different fields from what the project's R.java file have

  • 另一件事,当我创建一个新的 Activity 时,Eclipse 控制台上会弹出许多错误,例如

[2014-04-08 14:53:49 - MyFirstApp] C:\Users\ME\Documents\Android\Android Workspace\android-support-v7-appcompat\res\values\attrs.xml: 572:错误:属性“textAllCaps”已被定义

  • 此外,该项目将再次导入之前导入的 appcompat-v7 库(我手动删除了该库)并且它将删除我的 R.java 文件>AND 将取消与我手动创建的 v7 库的关联。

有正确的方法吗?还是真的需要一直导入支持库?谢谢。

最佳答案

我在意外重新创建 MainActivity 时遇到了同样的问题。因此,它导入了对 Appcompat 库的新引用。

您看到这些错误是因为存在对 Appcompat 库的引用的重复引用。暂时不要删除任何内容。

您必须做的第一件事是通过右键单击您的项目或按 Alt+Enter 显示项目属性窗口来删除重复的引用。然后单击“Android”选项卡并转到“库”。

Duplicate references to the Appcompat library

在引用的库列表中,您可能会看到多个对 Appcompat 库的引用。选择一个并单击删除,然后单击“应用”和“确定”。

然后您可以删除不需要的 MainActivity Activity 、其布局和菜单 XML 文件。但一定要格外小心。

我希望这会有所帮助。

关于android - Android SDK 支持库出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22930528/

相关文章:

android - 找不到参数[1.1]的方法versionCode()

java - Android 从自定义网络流播放视频数据?

eclipse - IllegalArgumentException:名为 [Hello] 和 [com.crunchify.jsp.servlet.HelloCrunchify] 的 servlet 都映射到 url-pattern

eclipse - 可移植Eclipse

java - 使用 xstream 将 XML 文件转为 ArrayList java 错误

android - Eclipse 不会将 BLU Dash 3.5 识别为 Activity 的 Android 设备

java - 为一种方法设置多个监听器

java - 从 GCMBaseIntentService 调用异步任务?

android - ConvexHull Android ndk 和 Opencv 中的参数无效

javascript - Nodejs 编辑器可在 eclipse 上工作