在以不同的方式使用相同的命名类时,如何防止重复类错误?

时间:2018-10-07 18:23:36

标签: android gradle android-productflavors

首先,我刚刚检查了StackOverflow中有关此问题的许多主题,但没有一个解决了我的问题。我的问题是;我有2种不同的口味,分别是主要口味和实验用口味。 主要 是默认样式。我只想在实验版本中改写或使用我的A.java,但这导致我重复的类发现错误。因为我相信可以通过口味使用相同的命名类,所以如何防止或解决此问题?还是我做错了什么?我希望你能帮助我解决我的问题。预先感谢。

项目结构

  • 应用
    • src
      • 主要
        • java
          • 核心
            • A.java
      • 实验性的
        • java
          • 核心
            • A.java

build.gradle

productFlavors{ main{ dimension = "default" applicationId "com.example.yekta.basicApp.main" } experimental{ dimension = "default" applicationId "com.example.yekta.basicApp.experimental" } } sourceSets { main { java.srcDirs = ['src/main/java'] res.srcDirs = ['src/main/res'] assets.srcDirs = ['src/main/assets'] } experimental { java.srcDirs = ['src/experimental/java'] res.srcDirs = ['src/experimental/res'] assets.srcDirs = ['src/experimental/assets'] } }

1 个答案:

答案 0 :(得分:0)

步骤1:将您的一种口味从main重命名为不是maintestandroidTest的任何其他有效值(或者,在您的情况下, experimental,因为您已经有了该名称的味道)

第2步:使用您从第1步中选择的名称,为新重命名的风味设置来源集。

第3步:将A.javamain移至您在第2步中创建的源集

main源代码集用于将在所有产品风格和内部版本中使用的代码。您无法通过尝试将main变成产品来改变这种情况。

请注意,在Android Studio 3.2上,似乎尝试定义名为main的产品样式会导致构建崩溃-至少在我尝试重现此问题时崩溃。