SharedTest在Android Studio Chipmunk上收到警告“检测到重复的内容根目录”

wj8zmpe1  于 2023-01-03  发布在  Android
关注(0)|答案(3)|浏览(189)

升级到Android Studio Chipmunk后,我的测试失败了,因为我无法访问build.gradle中定义的共享文件夹内的文件。

sourceSets {
    androidTest.java.srcDirs += "src/sharedTest/java"
    test.java.srcDirs += "src/sharedTest/java" }

它显示警告弹出消息**“检测到重复的内容根”。模块[unitTest]的路径[sharedTest]已从模块[androidTest]中删除。**任何人都可以解决此问题吗?

abithluo

abithluo1#

根据https://issuetracker.google.com/issues/232007221(Android Gradle插件7.2.0中“检测到重复的内容根”),Google在Android Studio Chipmunk 2021.2.1中不再支持此构造。
https://issuetracker.google.com/issues/232007221#comment17 指出“源集不能再包含共享根目录,因为这无法在IDE中表示。”
要关注正在进行的讨论,请订阅https://issuetracker.google.com/232007221
https://issuetracker.google.com/232420188

qvtsj1bj

qvtsj1bj2#

https://issuetracker.google.com/issues/232420188#comment19
目前的建议是使用单独的com.android.library Gradle项目来存储测试和androidTest之间所需的任何共享代码。

w9apscun

w9apscun3#

According to (@kreker thx for the hint): https://issuetracker.google.com/issues/232420188#comment19
目前的建议是使用单独的com. android. library Gradle项目来存储测试和androidTest之间所需的任何共享代码。
但是通常(至少对我来说),创建一个单独的java项目,将共享的测试代码移到这个新项目中,并为新的共享项目创建两个额外的testImplementationandroidTestImplementation项目依赖项就足够了。
一步一步(也许会有帮助)我是这样做的:1.在app文件夹旁边创建一个名为sharedTest(或类似的文件夹)的新文件夹。2.创建子目录sharedTest/src/main。3.移动(或者更确切地说,移动git mv,以便不丢失版本历史)共享测试代码:git mv app/src/sharedTest/java sharedTest/src/main/(不要忘记签入)。3.在sharedTest中创建一个新的(最小)sharedTest/build.gradle.kts文件:

plugins {
    java
}

dependencies {
}

java {
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
}

4.编辑settings.gradle.kts文件并添加新的共享项目:5.编辑app/build.gradle.kts文件:删除冲突的共享源代码集部分android{...}并添加2个新依赖项:

dependencies {
    //Share Code between androidTest and test
    //https://stackoverflow.com/questions/72358843/sharedtest-got-warning-duplicate-content-root-detected-on-android-studio-chipm
    testImplementation(project(path = ":sharedTest"))
    androidTestImplementation(project(path = ":sharedTest"))
}

相关问题