12

我在模块中定义了以下样式,我想将其用作 Activity 的主题

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:错误:错误:找不到与给定名称匹配的资源(在“主题”处,值为“@style/MyTheme”)。

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

谢谢。

4

2 回答 2

6

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

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

我做了什么:

1.将moduleLib设置为库项目

(menu->Project Structures...->Modules->moduleLib->facet Android -> 勾选“Is Library project”

2 设置moduleMain依赖于moduleLib

2.1 进入moduleMain的设置(步骤与上一个类似)

2.2 切换到“依赖项”

2.3 点击“+”,选择“module Dependency”添加moduleLib

2.4 把“范围”改成Compile(我试过接Provided,但当时不能使用主题)

这个对我有用

于 2013-07-10T04:09:41.863 回答
2

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

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

有一种称为apklibused 的特殊打包类型maven-android-plugin也可以打包资源,但是您必须使用 Maven 构建才能使用此功能。

于 2013-07-13T16:05:31.610 回答