【问题标题】:Class in android library project extending another class in root projectandroid库项目中的类扩展了根项目中的另一个类
【发布时间】:2016-05-14 21:34:10
【问题描述】:

我有一个 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']

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

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

【问题讨论】:

    标签: android build.gradle android-library


    【解决方案1】:

    (模块的)循环依赖是一个非常糟糕的主意。您应该始终避免使用它们。

    解决方案:

    • 将基类移至库模块或
    • 为基类创建第三个模块并从其他两个模块中引用它

    【讨论】:

      猜你喜欢
      • 2011-02-09
      • 1970-01-01
      • 2020-01-11
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多