我从Android SDK extras v7文件夹中复制appcompat文件夹,并在我的项目中创建一个Android库模块。编译项目我得到错误,第一个是
appcompat / res / layout / abc_action_mode_close_item.xml:17:错误:错误:找不到与给定名称匹配的资源(在'contentDescription'上值'@ string / abc_action_mode_done')。
看起来appcompat也需要mediarouter资源。所以我创建了一个Android库模块mediarouter。我将mediarouter设置为appcompat库的依赖项。编译。现在我收到错误
mediarouter / res / values / styles.xml:18:错误:检索项目的父项时出错:找不到与给定名称匹配的资源'Widget.AppCompat.ActionButton '。
我将dependnency appcompat添加到mediarouter。编译。现在我得到了错误
appcompat / res / values / attrs.xml:32:错误:属性“windowActionBar”已经定义
救命啊!
答案 0 :(得分:0)
您只需在appcompat / res / values / strings中添加“@ string / abc_action_mode_done”。不要“将mediarouter设置为appcompat库的依赖项”。(在我的情况下,“@ string / abc_action_mode_done”已经存在在appcompat / res / values / strings中。我不知道你为什么错过它。)
“将essenency appcompat添加到mediarouter”是必要的。
答案 1 :(得分:0)
我偶然发现了这个问题,似乎是IDEA中的一个错误: 在创建库模块时,IDEA将在新模块中创建一些样板文件。在此操作期间,IDEA将使用某种模板strings.xml文件覆盖strings.xml资源文件,该文件用于新创建的Android应用程序(IDEA还将创建您不需要或不需要的其他内容)。
有两种解决方法: 1.首先在IDEA中创建库模块,然后将appcompat-resources复制到现有的库模块目录中 2.在IDEA中创建库模块之前,只需将子文件夹设置为只读。这将阻止IDEA更改库中的文件。
之后,在我的机器上编译库模块。