我的build.gradle:
apply plugin: 'androID'androID {compileSdkVersion 19buildToolsversion "19.0.1"defaultConfig { minSdkVersion 14 targetSdkVersion 19 versionCode 1 versionname "1.0"}compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7}productFlavors { toast { } log { }}sourceSets { main { java.srcDirs = ['src/main/java','src/log/java'] } toast { java.srcDirs = ['src/main/java','src/toast/java'] }}buildTypes { release { runProguard false proguardfiles getDefaultProguardfile('proguard-androID.txt'),'proguard-rules.txt' } }}dependencIEs {compile filetree(dir: 'libs',include: ['*.jar','*.aar'])}
文件结构:
Flavor日志包含带有方法showMessage(Context context,CharSequence text)的单类Messenger,并使用Log.i(tag,msg)打印文本
Flavor toast包含带有方法showMessage(Context context,并显示带有一些文本的toast.
主要来源不包含此类.
为什么错误重复类:com.test.flavortest.Messenger出现?每种口味都有一套不同的非交叉源路径?
Full sample project,zipped
解决方法 在源集定义中,您似乎将日志源添加到main:sourceSets { main { java.srcDirs = ['src/main/java','src/toast/java'] }}
main是包含在所有flavor中的默认sourceset.这会导致在构建Toast风格时加载重复的类(Messenger).
尝试仅指定日志和Toast源集:
sourceSets { log { java.srcDirs = ['src/main/java','src/toast/java'] }}
您的文件结构似乎与默认值匹配,因此更好的解决方案是完全删除源集块.默认情况下包含src / main / java,然后自动添加src / flavor / java.
总结以上是内存溢出为你收集整理的如何为android gradle项目设置风味?神秘的重复类错误全部内容,希望文章能够帮你解决如何为android gradle项目设置风味?神秘的重复类错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)