如何在IntelliJ IDEA(非Android Studio / Gradle)中添加库android-support-v7?

时间:2013-08-15 16:00:42

标签: android intellij-idea

我从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”已经定义

救命啊!

2 个答案:

答案 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更改库中的文件。

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