升级到Android Studio Chipmunk后,我的测试失败了,因为我无法访问build.gradle中定义的共享文件夹内的文件。
sourceSets {
androidTest.java.srcDirs += "src/sharedTest/java"
test.java.srcDirs += "src/sharedTest/java" }
它显示警告弹出消息**“检测到重复的内容根”。模块[unitTest]的路径[sharedTest]已从模块[androidTest]中删除。**任何人都可以解决此问题吗?
3条答案
按热度按时间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
qvtsj1bj2#
https://issuetracker.google.com/issues/232420188#comment19
目前的建议是使用单独的com.android.library Gradle项目来存储测试和androidTest之间所需的任何共享代码。
w9apscun3#
According to (@kreker thx for the hint): https://issuetracker.google.com/issues/232420188#comment19
目前的建议是使用单独的com. android. library Gradle项目来存储测试和androidTest之间所需的任何共享代码。
但是通常(至少对我来说),创建一个单独的
java
项目,将共享的测试代码移到这个新项目中,并为新的共享项目创建两个额外的testImplementation
和androidTestImplementation
项目依赖项就足够了。一步一步(也许会有帮助)我是这样做的: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
文件:4.编辑
settings.gradle.kts
文件并添加新的共享项目:5.编辑app/build.gradle.kts
文件:删除冲突的共享源代码集部分android{...}
并添加2个新依赖项: