AndroidStudio库资源共享

时间:2013-11-25 14:08:06

标签: android gradle android-studio

今天我正在解决Android Studio的一个问题。

我有这个项目树:

  • 应用程序(这是可执行应用程序)
  • ui(这是图书馆)
  • ui-common(这是图书馆)
  • ui-tablet(这是图书馆)
  • ui-phone(这是图书馆)

应用程序使用ui 使用ui-tablet和ui-phone ui-phone使用ui-common ui-tablet使用ui-common

ui-common包含常见的java代码,drawable和字符串资源

现在,我尝试编译项目,但有下一个错误: “错误:导入home.test.ui.common.R上不存在包home.test.ui.common;”

java类正常,但是R类不存在...文件build \ source \ r \ _sphe \ sta \ android \ ui \ common正常生成

我的项目的gradle文件: -ui

...
apply plugin: 'android-library'

dependencies {
    compile project(":ui-common")
    compile project(":ui-phone")
    compile project(":ui-tablet") 
}
...

-ui共用

...
apply plugin: 'android-library'

dependencies {
}
...

-ui电话

...
apply plugin: 'android-library'

dependencies {
    compile project(":ui-common")
}
...

-ui片剂

...
apply plugin: 'android-library'

dependencies {
    compile project(":ui-common")
}
...

-application

...
apply plugin: 'android'

dependencies {
    compile project(":ui")
}
...
.iml文件库中的

也包括在内: 适用于ui-phone和ui-tablet项目:

<orderEntry type="module" module-name="ui-common" exported="" />

对于ui项目:

<orderEntry type="module" module-name="ui-phone" exported="" />
<orderEntry type="module" module-name="ui-tablet" exported="" />

申请项目

<orderEntry type="module" module-name="ui" exported="" />

我如何设置与ui-tablet和ui-phone项目共享资源的项目?

更新1 ui-common \ build \ source \ r只包含release文件夹,不生成任何调试文件夹。 我尝试在ui-phone项目中将ui-common的依赖类型从'compile'更改为'compile debug'。在这个ui-phone项目的编译正常运行后,但我有其他项目的错误。为什么android studio / gradle没有生成调试输出?对于其他库(正常生成调试和发布)

1 个答案:

答案 0 :(得分:0)

好吧,我解决了我的问题。我相对于包名称和资源合并的错误

在ui-phone项目中我必须使用ui-phone.R因为资源已经合并了!