android库项目中的类在根项目中扩展另一个类

时间:2016-05-14 21:34:11

标签: android build.gradle android-library

我有一个android项目,我希望通过将一个模块作为库项目来分离两个模块。但是将成为库的一部分的类扩展了一个将在根项目中的类。那么,我如何在build.gradle中链接这两个?

根项目的Gradle文件包含:

sourceSets {
    main {
        res.srcDirs = ['res']
        main.java.srcDirs = ['src']
        manifest.srcFile 'AndroidManifest.xml'
        proto.srcDirs 'protos/'
    }
}

dependencies {

    compile files('libs/host-libprotobuf-java-2.3.0-nano.jar')
    compile files('libs/protobuf-java-2.3.0.jar')
    compile project('lib')
}

库项目gradle文件包含:

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }
}

在这种情况下,它会在' lib'中显示错误。我正在扩展根项目类的项目。如果我将库gradle文件中的java.srcDirs修改为

java.srcDirs = ['src', '../src']

该类在没有任何编译问题的情况下得到扩展,但在其他类的根项目中会出现问题。

那么,有人能告诉我如何将这两者联系起来吗?

1 个答案:

答案 0 :(得分:1)

循环依赖(模块)是一个非常糟糕的主意。你应该总是避免它们。

解决方案:

  • 将基类移动到库模块或
  • 为基类创建第三个模块,并从其他模块引用它