1

我从 Android SDK extras v7 文件夹中复制 appcompat 文件夹并在我的项目中创建一个 Android 库模块。编译项目我得到错误,第一个是

appcompat/res/layout/abc_action_mode_close_item.xml:17: error: Error: No resource found that match the given name (at 'contentDescription' with value '@string/abc_action_mode_done')

看起来 appcompat 也需要 mediarouter 资源。所以我创建了一个Android库模块mediarouter。我将 mediarouter 设置为 appcompat 库的依赖项。编译。现在我收到错误

mediarouter/res/values/styles.xml:18: error: Error retrieving parent for item: No resource found that match the given name 'Widget.AppCompat.ActionButton'

我将依赖 appcompat 添加到 mediarouter。编译。

appcompat/res/values/attrs.xml:32:错误:属性“windowActionBar”已被定义

帮助!

4

2 回答 2

0

我偶然发现了这个问题,这似乎是 IDEA 中的一个错误:当您创建库模块时,IDEA 将在新模块中创建一些样板文件。在此操作期间,IDEA 将使用某种模板 strings.xml 文件覆盖 strings.xml 资源文件,该模板用于新创建的 android 应用程序(IDEA 还将创建其他您不想要或不需要的东西)。

有两种解决方法: 1. 首先在 IDEA 中创建库模块,然后将 appcompat-resources 复制到现有的库模块目录中 2. 在 IDEA 中创建库模块之前,只需将子文件夹设置为只读即可。这将防止 IDEA 更改库中的文件。

之后,库模块在我的机器上编译。

于 2013-08-26T22:07:15.420 回答
0

您只需要在 appcompat/res/values/strings 中添加“@string/abc_action_mode_done”。不要“将 mediarouter 设置为 appcompat 库的依赖项”。(在我的情况下,appcompat 中已经存在“@string/abc_action_mode_done” /res/values/strings.我不知道你为什么错过它。)

“将依赖 appcompat 添加到 mediarouter”是必要的。

于 2013-08-18T06:35:09.273 回答