设置 android-support-v7-appcompat 后 R.java 丢失

Posted

技术标签:

【中文标题】设置 android-support-v7-appcompat 后 R.java 丢失【英文标题】:After setting up android-support-v7-appcompat R.java is missing 【发布时间】:2013-09-04 23:39:17 【问题描述】:

我正在尝试更改我的 Eclipse 项目以使其向后兼容 android 2.1。 我按照说明从here 设置了支持库,但是在我将库项目附加到我的项目后,gen 目录中的 R.java 消失了。

另外我在控制台中遇到了一些错误,例如:

[2013-09-02 00:08:26 - gitarshopAndroidClient] /usr/local/external/android-sdk-linux/extras/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'.
[2013-09-02 00:08:26 - gitarshopAndroidClient] /usr/local/external/android-sdk-linux/extras/android/support/v7/appcompat/res/values-v14/styles_base.xml:28: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.Light.ActionBar'.
[2013-09-02 00:08:26 - gitarshopAndroidClient] /usr/local/external/android-sdk-linux/extras/android/support/v7/appcompat/res/values-v14/styles_base.xml:32: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.ActionBar.Solid'.

有什么想法吗?

【问题讨论】:

有两种选择。第一个是“添加没有资源的库”,第二个是“添加有资源的库”。您遵循了哪一组说明? 嗯,您显示的错误显然与缺少 Android 资源有关,这就是为什么您没有 R.java 文件的原因,因为如果某些资源可以,则在尝试创建它时构建将中止'找不到。我花了很长时间让 v7 兼容的东西正常工作 - 花了几个小时摆弄。最后我想我关闭了我的项目,图书馆项目然后关闭了eclipse。然后我重新启动了 eclipse,打开了库项目,然后打开了我的项目,并对两个项目执行了清理,一切都恢复了正常。有点小技巧,但我只能建议。 感谢您的想法。我已经尝试了所有这些但没有运气:(奇怪的是我删除了库引用,R.java 再次出现(在清理之后) 您是否在您的 v7 支持库项目中使用 v4 支持 appcompat 的东西?据我所知,您需要这样做,因为 v7 的东西并不是完全独立的。例如,我的 v7 库项目在“Android Private Libraries”和“Referenced Libraries”部分都显示了 android-support-v4.jar。 正确。两个文件都在那里。 【参考方案1】:

你应该从 android 私有库中删除 android-support-v4.jar 因为它已经在 android-support-v7-appcompat

【讨论】:

【参考方案2】:

您需要在您的项目中 support v7 项目的 libs 文件夹中添加 jar (support v7),并将支持版本 7 作为库项目添加到您的项目中

【讨论】:

【参考方案3】:

只需点击 项目 > Android > 修复项目属性。

它适用于 Eclipse Kepler 和最新的 ADB 版本!

【讨论】:

【参考方案4】:

在您的项目中单击,选择属性,选择 Andoid 并对库执行相同操作,以确保两者具有相同的项目构建目标。不要触摸 tha manifest sdk 任何东西,因为这会导致错误再次出现

【讨论】:

【参考方案5】:

我对 Android 开发有点陌生,但我找到了这个解决方案:

    如果您想要兼容性,首先确保在“新 Android 应用程序”Eclipse 的窗口中创建项目时将 MinimunRequiredSDK、TargetSDK 和 CompileWith 设置为 API7:Android 2.1(Eclair)。

    根据developers.android.com (http://developer.android.com/tools/support-library/setup.html#using-apis)提供的指南创建支持库项目android-support-v7-appcompat

    将支持库添加到您的项目(右键单击您的项目,属性,android,在库框架)。请注意,R.java 文件已消失。

    转到项目的 project.properties 文件并将名为 target 的属性更改为“Google Inc.:Google APIs:14”。不要在 AndroidManifest.xml 文件中更改此属性。

    清理您的项目。错误消失了。

    运行您的项目。

    如果您没有在真实设备上运行您的应用程序,系统将始终要求您选择兼容的设备。选择一个运行 Android 2.1 并享受它。

OBS.:由于这种解决方法,如果您正在使用虚拟设备,将始终出现“未找到兼容目标”的烦人消息。您可以回答 NO 并在 Android 设备选择器窗口中选择一个设备。强烈建议选择运行Android 2.1的一款

【讨论】:

【参考方案6】:

对我有用的是执行以下操作:

右击android-support-v7-appcompat项目并选择 删除(只需将其从工作区中删除,不要从磁盘中删除)。

右键单击您的项目并选择属性 -> Android,然后 从您的参考文献中删除 android-support-v7-appcompat,然后点击确定。

清理您的项目

然后选择文件->导入并重新导入android-support-v7-appcompat

然后回到Properties -> Android,再次添加引用。

清理您的项目

【讨论】:

【参考方案7】:

好的,我发现了问题所在。

我的项目的构建目标是 Android 2.1 (API 7)。 我必须至少以 Android 4.0 (API 14) 为目标才能摆脱警告消息。

您的应用仍可在 Android 2.1 设备上运行!这是我错误设置目标时错过的。

【讨论】:

为我工作。一个问题:需要在 AndroidManifest.xml 和 project.properties 中更改目标

以上是关于设置 android-support-v7-appcompat 后 R.java 丢失的主要内容,如果未能解决你的问题,请参考以下文章

android-support-v4在sdk哪个位置

关于android-support-v4.jar包的错误

android-support-v4 错误生成与 R.java 被擦除

如何使用android-support-V7包中ActionBar

android-support-v7-appcompat.jar放在哪

如何使用android-support-v7-appcompat