如何使用IntelliJ引用Android模块中定义的样式?

时间:2013-06-06 08:04:35

标签: java android intellij-idea android-xml

我在模块中定义了以下样式,我想将它用作活动

上的主题

Android模块的styles.xml:

<resources>
    <style name="MyTheme" parent="android:Theme.Light.Panel"></style>
</resources>

Android应用的AndroidManifest.xml:

 <activity android:name="MyActivity" android:theme="@style/MyTheme"> ... </activity>

我正在使用 IntelliJ ,我收到编译错误

  

android-apt-compiler:AndroidManifest.xml:26:错误:错误:否   找到与给定名称匹配的资源(在'theme'处有值   '@风格/ MyTheme的')。

如何在主应用程序中引用模块jar中的样式?

感谢。

2 个答案:

答案 0 :(得分:6)

我刚刚解决了这个问题,项目是这样的:

  • 你有模块(例如moduleLib)
  • 你有一个模块(例如moduleMain)
  • moduleMain依赖于moduleLib,而moduleLib的一些主题是 在moduleMain中引用

我做了什么:

1.将moduleLib设置为库项目

(menu-&gt; Project Structures ...-&gt; Modules-&gt; moduleLib-&gt; facet Android - &gt;检查“Is Library project”

2设置moduleMain取决于moduleLib

2.1转到moduleMain的设置(步骤类似于前一个步骤)

2.2切换到“依赖关系”

2.3单击“+”,然后选择“module Dependency”添加moduleLib

2.4将“范围”改为编译(我试图拿起提供,但我不能再使用主题了)

它对我有用

答案 1 :(得分:2)

如果正确设置了模块依赖关系,则库模块的资源会自动复制到App模块并与App模块打包在一起。那就是:依赖于模块目录,而不是jar文件。

库项目的jar输出不包装资源。默认的android构建工具不支持它。

apklib使用的特殊包装类型maven-android-plugin也可以打包资源,但您可以使用Maven构建以使用此功能。