今天,我遇到了Android Studio的问题。

我有这个项目树:

  • 应用程序(这是可执行应用程序)
  • ui(这是库)
  • ui-common(这是库)
  • ui-tablet(这是库)
  • ui电话(这是库)

  • 应用程序使用ui
    ui使用ui-tablet和ui-phone
    ui手机使用ui-common
    ui-tablet使用ui-common

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

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

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

    我的项目的gradle文件:
    -ui
    ...
    apply plugin: 'android-library'
    
    dependencies {
        compile project(":ui-common")
        compile project(":ui-phone")
        compile project(":ui-tablet")
    }
    ...
    

    -ui-common
    ...
    apply plugin: 'android-library'
    
    dependencies {
    }
    ...
    

    -ui电话
    ...
    apply plugin: 'android-library'
    
    dependencies {
        compile project(":ui-common")
    }
    ...
    

    -ui-tablet
    ...
    apply plugin: 'android-library'
    
    dependencies {
        compile project(":ui-common")
    }
    ...
    

    -应用
    ...
    apply plugin: 'android'
    
    dependencies {
        compile project(":ui")
    }
    ...
    

    .iml文件库中也包括:
    对于ui电话和ui平板电脑项目:
    <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-common项目以与ui-tablet和ui-phone项目共享资源?

    更新1
    ui-common \ build \ source \ r仅包含发行版文件夹,不生成任何调试文件夹。
    我尝试在ui电话项目中将ui-common的依赖关系类型从“编译”更改为“编译调试”。 ui-phone项目的此编译正常运行后,但其他项目却出错。为什么Android Studio / Gradle无法生成调试输出?对于其他库(调试和发布均正常生成)

    最佳答案

    好的,我正在解决我的问题。关于包名称和资源合并的我的错误

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

    10-02 04:49
    查看更多