【问题标题】:Android Gradle DependencyAndroid Gradle 依赖
【发布时间】:2015-05-22 20:22:19
【问题描述】:

我正在为我们的一个项目使用本地 aar 文件,并且有以下查询。 我有 2 个库和 1 个应用程序。

2 个库是: 1.TestLib2 2.TestLib1

1 应用程序是: 1. 测试

我使用为 TestLib2 创建的 aar 文件,并在 TestLib1 中使用 flatDir 引用它。我可以毫无问题地访问 TestLib2 中的函数。

现在我使用为 TestLib1 创建的 aar 文件并在 Test 中使用 flatDir 引用它。我只能访问 TestLib1 中存在的函数。为了访问 TestLib2,我必须将它作为另一个库添加到测试应用程序中。

所以依赖如下:

Test
|_ TestLib1
   |_ TestLib2

如果是 aar 文件,上述情况是否可行?

在我提到的 TestLib1 的 settings.gradle 文件中也包含

include ':app', ':testlib2-debug'

app 指的是 TestLib1

build.gradle 文件本身并没有任何风格,我什至没有将它们用作 jar 的任何限制,因为它只包含 java 代码。

非常感谢您提供任何帮助。

BR, 杰希尔

更新 1: 我在 TestLib1 和 Test 的 build.gradle 中也尝试过。 仍然没有运气。

dependencies {
    compile (name:'testlib2-debug', ext:'aar') {
        transitive = true;
    }
}

对于测试应用

compile (name:'testlib1-debug', ext:'aar')  {
        transitive = true;
}

【问题讨论】:

    标签: android-gradle-plugin build.gradle


    【解决方案1】:

    所以我终于想出了一个解决方案。 它适用于上面提到的 2 级依赖。

    为 Test Lib 2 创建一个 jar 文件。

    task clearJar(type: Delete) {
        delete 'build/outputs/loggingSDK.jar'
    }
    
    task makeJar(type: Copy) {
        from('build/intermediates/bundles/release/')
        into('build/outputs/')
        include('classes.jar')
        rename ('classes.jar', 'testlib2.jar')
    }
    
    makeJar.dependsOn(clearJar, build)
    

    通过使用命令

    gradle makeJar
    

    你会得到一个 testlib2.jar

    将此复制到您的 TestLib1 中

    使用命令

    gradle assemble
    

    这将创建调试和发布版本

    获取调试版本并将其复制到测试中,您将能够调用 TestLib1 的函数,然后调用 TestLib2 的函数

    希望这可以帮助寻找此类解决方案的人

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-02
      • 2014-10-18
      相关资源
      最近更新 更多