Android的gradle这个buildTypes:重复类 [英] Android gradle buildTypes: Duplicate class

查看:1951
本文介绍了Android的gradle这个buildTypes:重复类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我转换我的应用程序使用gradle这个,我试图用buildTypes。我有我想修改我的发布版本一常量类。所以我必须在文件的src / main / JAVA /我/包/名/ Constants.java 的src /发行/ JAVA /我的/包/名/ Constants.java

I'm converting my app to use gradle, and I'm trying to use the buildTypes. I have a Constants class which I wish to modify for my release build. So I have a file at src/main/java/my/package/name/Constants.java and at src/release/java/my/package/name/Constants.java.

当我尝试建立这个,gradle这个告诉我,构建失败在我发布buildtype的常量文件中,这是一个重复类错误。

When I try to build this, gradle tells me the build failed on the Constants file in my release buildtype, with the error that it's a duplicate class.

我也试过在添加不同sourceSet为此我的build.gradle 是这样的:

I also tried adding a different sourceSet for this in my build.gradle like this:

sourceSets {
    main {
        java.srcDirs = ['src/main/java'];
        //...
    }
    release {
        java.srcDirs = ['src/release/java'];
    }
}

但是,这仍然给了我同样的错误。所以,我想知道,我究竟做错了什么?

But this still gives me the same error. So I'm wondering, what am I doing wrong here?

推荐答案

您不能在发布。你需要像拆的东西调试发布

You can not have a class in main and release. You need to split it to something like debug and release.

gradle这个将合并源设置每个 buildType 。结果
这是什么原因,为什么类GET在你的复制发布版本。

gradle will merge the source sets for each buildType with main.
This is the reason, why the class get's duplicated in your release build.

所以规则是:把全班学生分成每一个 buildType 但不能同时使用。

So the rule is: put a class into main, or in every buildType but not both.

这篇关于Android的gradle这个buildTypes:重复类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆