首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误Redeclaration类配置Android构建变体

错误Redeclaration类配置Android构建变体
EN

Stack Overflow用户
提问于 2019-07-29 09:09:29
回答 5查看 3.2K关注 0票数 8

在我的Android项目中,我用3个变体配置了一个维度(例如: mock、dev、prod)。我还有默认的构建类型(调试、发布),其中我有它们的应用程序实现:

  • src/debug/java/package/MyApplication.kt
  • src/release/java/package/MyApplication.kt

这样我就可以生成6个版本(mockDebug、mockRelease、devDebug、devRelease等)

现在,我的mockDebug变体需要一个特定的MyApplication.kt实现。

当我阅读这里时,我可以这样做,在这个路径中创建一个类MyApplication:src/mockDebug/java/package/MyApplication.kt

然而,我在Android中收到一个错误,上面写着"Redeclaration: MyApplication“。

我确信我可以解决这个问题,将所有的调试/发布MyApplication.kt实现移到

  • mockDebug
  • mockRelease
  • devDebug
  • devRelease
  • prodDebug
  • prodRelease

目录,但是我不明白为什么文档说它是可能的,即使我收到了那个错误

谢谢你帮我

EN

回答 5

Stack Overflow用户

发布于 2020-12-15 10:24:40

在我的例子中,删除/build文件夹解决了这个问题。

票数 3
EN

Stack Overflow用户

发布于 2020-10-23 05:44:34

"Redeclaration: MyApplication“--您将此错误视为主要错误和您的口味或变体中的错误。

方法应该是您想要更改的类或文件,不应该主要地复制该文件,并将它们添加到调味或变体中,并进行您想要看到的更改。

票数 2
EN

Stack Overflow用户

发布于 2019-07-29 09:32:36

您可以尝试以这种方式实现分级。在Build.gradle中:

代码语言:javascript
复制
  buildTypes {
    release {
        debuggable false
        minifyEnabled true
        zipAlignEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        debuggable true
        zipAlignEnabled false
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }

  productFlavors {
    mock {
        minSdkVersion 17
        applicationId 'com.test.mock'
        targetSdkVersion 23
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        versionCode 1
        versionName '1.0'
    }
    dev {
        minSdkVersion 17
        applicationId 'com.test.dev'
        targetSdkVersion 23
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        versionCode 1
        versionName '1.0'
    }
    prod {
        minSdkVersion 17
        applicationId 'com.test.prod'
        targetSdkVersion 23
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        versionCode 1
        versionName '1.0'
    }
}

因此,现在您可以使用如下的文件夹结构:

代码语言:javascript
复制
  /src/mock/Application.kt
  /src/dev/Application.kt
  /src/prod/Application.kt

因此,一旦您构建了该项目,从BuildVariant选项卡中选择变量,这样它就会采取相应的Application.kt。

希望这将有助于解决你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57250541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档