只是一个具有“prod”和“mock”风格的普通项目
在应用程序/build.gradle中:
sourceSets {
main.java.srcDirs += "blabla bla"
test.java.srcDirs += "blabla bla"
androidTest.java.srcDirs += "blabla bla"
prodDebug.java.srcDirs += "blabla bla"
mockDebug.java.srcDirs += "blabla bla"
prod.java.srcDirs += "blabla bla"
testProd.java.srcDirs += "blabla bla"
androidTestProd.java.srcDirs += "blabla bla"
mock.java.srcDirs += "blabla bla"
testMock.java.srcDirs += "blabla bla"
androidTestMock.java.srcDirs += "blabla bla"
}
在 Android Studio 中点击“运行”:
出了问题:
Error:org.gradle.api.GradleException: The SourceSet 'mockDebug' is not recognized by the Android Gradle Plugin. Perhaps you misspelled something?
不过,我可以做"./gradlew clean build" or "./gradlew assembleProd installProdDebug"
etc.
但是,如果我在命令行中执行此操作,则无法完全构建该应用程序,它可以在目标设备上安装该应用程序,但该应用程序会崩溃,如下所示"xxxx.dex"
问题。
issue https://issuetracker.google.com/issues/73536375
将 Gradle 插件从 3.0.1 更新到 3.1.0 后遇到了同样的问题。看来 Gradle 现在只能找到在 Android Studio 中选择的变体的源集。
目前修复此问题的解决方法是删除sourceSets {}
阻止并添加以下内容:
def customSourceSets = [
myFirstBuildVariant: 'src/myFirstBuildVariant',
mySecondBuildVariant: 'src/mySecondBuildVariant',
]
android.applicationVariants.all {
if (customSourceSets.containsKey(name)) {
sourceSets.find { it.name == name }.setRoot(customSourceSets.get(name))
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)