App1: dependencIEsreusable lib1reusable lib3reusable lib4theme - App1 flavorApp2: dependencIEsreusable lib1reusable lib2reusable lib4theme - App2 flavor
现在我更愿意,如果可重用的libs可以简单地依赖于主题而不需要知道要构建哪种风格,并且主要的应用程序proj依赖于主题可以引用该应用程序的风格(使用此答案https://stackoverflow.com/a/24316133/1316346).原因是每个可重用模块都不能在其build.gradle依赖项中使用单个应用程序,否则会破坏引用它们的其他应用程序.为每个我写的应用程序制作每个可重用模块的味道也很繁琐.有没有办法实现这样的事情?这是我试过的:
App1 build.gradle:
dependencIEs { compile filetree(include: ['*.jar'],dir: 'libs') compile 'com.androID.support:appcompat-v7:22.1.1' compile project(path: ':theme',configuration: 'app1Release') compile project(':lib1') compile project(':lib2') compile project(':lib4')}
App2 build.gradle:
dependencIEs { compile filetree(include: ['*.jar'],configuration: 'app2Release') compile project(':lib1') compile project(':lib3') compile project(':lib4')}
lib1 build.gradle:
dependencIEs { compile filetree(include: ['*.jar'],dir: 'libs') compile 'com.androID.support:appcompat-v7:22.1.1' compile project(path: ':theme')}
这个问题是,一旦lib1尝试访问主题中的任何内容,它就会出错.事实上,它甚至没有首先构建主题,它将尝试在主题之前构建lib1,即使lib1具有依赖性(与味道有些奇怪).如果我将lib1更改为:
dependencIEs { compile filetree(include: ['*.jar'],configuration: 'app1Release')}
它适用于app1,但我必须在构建每个应用程序之前不断更改它,或者为我想避免的每个lib做很多味道.有人做过这样的事吗?
tl; dr模块可以根据引用相同模块的应用程序构建的风格引用另一个模块的风格
解决方法 我自己没有这样做,但根据我对 configuration injection的理解,您是否可以在lib1项目中包含所有风格(具有相应的正确主题项目依赖项),然后在App1和App2中的lib1依赖项中包含配置风格?例如.,
dependencIEs { compile filetree(include: ['*.jar'],dir: 'libs') compile 'com.androID.support:appcompat-v7:22.1.1' compile project(path: ':theme',configuration: 'app1Release') compile project(path: ':lib1',configuration: 'app1Release') compile project(':lib3') compile project(':lib4')}总结
以上是内存溢出为你收集整理的带有风味的Android主题模块全部内容,希望文章能够帮你解决带有风味的Android主题模块所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)