gpt4 book ai didi

android - 我如何让 Gradle for Android 从其他测试代码中找到一个库的测试代码?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:38:13 24 4
gpt4 key购买 nike

我有一个 Android 应用程序,它下面有两个库层。每个库都有自己的测试代码。我希望上层库的测试代码扩展下层库的测试代码,但我不知道如何让 Gradle 找到下层库的测试代码(它只能找到生产代码)。

我的文件结构是这样的:

myproject/
+ myapp/
+ src/
+ main/
+ java
+ com/myapp
+ lib1/
+ src/
+ main/
+ java
+ com/myapp/lib1
+ androidTest
+ java
+ com/myapp/lib1/test
+ lib2/
+ src/
+ main/
+ java
+ com/myapp/lib2
+ androidTest
+ java
+ com/myapp/lib2/test

应用程序的 gradle 文件如下所示:

apply plugin: 'com.android.application'
android { ... }
dependencies {
compile project(':lib2')
}

lib2 的 gradle 文件如下所示:

apply plugin: 'com.android.library'
android { ... }
dependencies {
compile project(':lib1')
}

lib1 的 gradle 文件如下所示:

apply plugin: 'com.android.library'
android { ... }

当我运行“gradle connectedCheck”时,我得到了这个:

...
:lib2:generateDebugTestSources UP-TO-DATE
:lib2:compileDebugTestJava
myproject/lib2/src/androidTest/java/com/myapp/lib2/test/SubClass.java:10: error: package com.myapp.lib1.test does not exist
import com.myapp.lib1.test.BaseClass;

我曾尝试将各种 androidTestCompile 行添加到 lib2 的 gradle 文件的依赖项部分,但没有任何帮助。

有人知道如何让它工作吗?

编辑:抱歉,我没有提到我在 myproject 文件夹中还有一个 settings.gradle,如下所示:

include ':lib1'
include ':lib2'
include ':myapp'

最佳答案

问题是您的 gradle 不知道 myapp、lib1 和 lib2 模块的连接。

尝试在使用另一个模块的模块中添加一些 settings.gradle。对于您的结构,我建议在根目录中制作额外的 gradle 文件:

例如在我的项目/

设置.gradle:

rootProject.name = 'myproject'
include 'myapp'
include 'lib1'
include 'lib2'

然后为所有模块编写 gradle.build,您在其中澄清所有项目的类型,例如 ear 等。

您也可以单独连接模块。

关于android - 我如何让 Gradle for Android 从其他测试代码中找到一个库的测试代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26875457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com