I have src/main/java
为主要源集。也src/heroes/java
名为的产品风味的源集heroes
and a src/villains/java
名为的产品风味的源集villains
.
那些只有单一的构建类型,debug
。这意味着构建变体窗格将包含heroesDebug
and villainsDebug
.
现在,在 Android Studio 中,如果我选择构建变体heroesDebug
, src/main
and src/heroes
变得“活跃”,同时src/villains
“停用”。这意味着我可以在这些“活动”源集上使用 ALT + Insert、代码完成以及 IDE 的其他此类功能。语法突出显示之类的东西甚至不会显示在“非活动”源集中的文件上。
这基本上没问题。但是如果我重命名或移动很多类,我就会遇到一个大问题src/main
国内很多地方都是进口的src/villains
。我注意到重构的包或类名反映在src/heroes
但是当我切换到villainsDebug
,我会看到红线并且Cannot resolve symbol
中的错误src/villains
IDE 应该更新包或类的新名称或位置!
反之亦然——如果villainsDebug
处于活动状态,我重新整理了一些代码src/main
,更改将传播到src/villains
但如果我再次切换到heroesDebug
,这些变化将无处可见。
EDIT
那么我如何获得变化src/main
传播到“非活动”构建变体的所有其他源集?
尝试将其添加到您的应用程序 build.gradle 中:
android{
...
sourceSets{
main{
java.srcDirs = ['src', 'heroes', 'villains']
}
}
}
这将导致所有目录可见,您应该仅在重构时执行此操作,然后在之后删除它,因为您将看到重复的类异常。此外,这将创建一个奇怪的 Android 项目视图,其中包含多个 java 文件夹。可能不是最好的解决方案,但它对我有用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)