当前位置: 首页 > 知识库问答 >
问题:

Android build变体无法与不同口味兼容

支阳波
2023-03-14

我的应用程序中大约有20种不同的口味。以前它工作良好,自去年以来,但更新到新的gradle版本4.4后,它开始提出一个问题,没有找到匹配的客户端为包名称。

注意:现在只有默认的味道是工作文件。

Error:cannot access Hide
Error:Execution failed for task ':app:compileKissgc_customerDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.


    android {
        compileSdkVersion 26
        buildToolsVersion '26.0.2'
        defaultConfig {
            applicationId 'com.mobile.test'
            minSdkVersion 15
            targetSdkVersion 26

            multiDexEnabled true
            versionCode 46
            versionName "1"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                // minifyEnabled true
                false

    //            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
    //                    'proguard-rules.pro'
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        lintOptions {
            checkReleaseBuilds false
        }
        productFlavors {
            test{
                minSdkVersion 19
                applicationId 'com.mobile.test'
                targetSdkVersion 27
                versionCode 46
                versionName '1.0'
                flavorDimensions "default"
    //            deploy = "release|staging"
            }
            test1{
                minSdkVersion 19
                applicationId 'com.mobile.test1'
                targetSdkVersion 27
                versionCode 7777810
                versionName '1.0'
            }
}

  compile ("android.arch.persistence.room:runtime:1.0.0") {
        exclude group: 'com.android.support'
    }
    compile 'com.google.firebase:firebase-crash:12.0.1'
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile('com.stripe:stripe-android:1.0.4@aar') {
        transitive = true;
    }

    compile 'com.android.support:appcompat-v7:26.1.0'
    compile('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
        transitive = true
    }
   // compile 'com.google.firebase:firebase-core:12.0.1'
//    compile 'com.google.android.gms:play-services:16.0.0'
    compile 'com.github.drawers:SpinnerDatePicker:1.0.6'
    compile 'info.hoang8f:android-segmented:1.0.6'
    implementation 'com.google.android.gms:play-services-wallet:16.0.0'

共有1个答案

纪辰沛
2023-03-14

在新的gradle版本中,必须在定义ProductFlavors之前定义flavorDimensions。如果你没有任何需要提及的维度。那么默认情况下,您必须定义flavorDimensions“default”

 flavorDimensions "default"
    productFlavors {
        test {
            applicationId "com.example.test"
        }

        tester {
            applicationId "com.example.tester"
        }
}
 类似资料:
  • 我正在尝试为Android Studio3.0和gradle Plugin3.0设置不同的构建变体,但是Android Studio并没有为每个我的口味创建构建变体。Gradle构建是成功的,但我不知道如何制作productionapiRealese和germanyapiRelease构建变体。我怎么能做到? 我的口味: 和我的生成变体:

  • 我为我的产品定义了一系列的产品风格。然而,在一些场景中,我希望构建没有味道的场景。 然而,当我试图建立一个没有味道的版本,即 它通过并构建所有的变体,这需要很长的时间。我想启动一个发布版本构建并忽略所有的味道。这可能吗? 我确信我可以添加一个名为“默认”的空味道,并构建它。似乎我不应该这样做。 编辑: 目前的答案似乎是提供自己的“默认”风格

  • 我通过选择构建变体到来运行代码。然而,运行结果显示,分级程序仍然从中选择类(和),而不是在中使用更改后的版本。 我是不是漏掉了什么?

  • null 我尝试过的相关帖子: 从单个生成类型生成使用不同密钥签名的多个生成 这需要为每种口味配置 它似乎没有使用我自定义的 null null 我的的重要部分如下所示:

  • 更新:不推荐使用GCM,请使用FCM 我正在按照Google Developers页面中的指南实现新的Google云消息 我已经成功地运行并测试了它。但我现在的问题是,我有不同的产品风格,有不同的applicationID/packageName和不同的Google Cloud Messaging Project ID。必须放在而不是flavors文件夹中。 有什么方法可以使配置针对多种口味不同吗

  • 我正在尝试将我的项目迁移到gradle。我的一个项目有多种产品风格,并且每个项目都必须在其发布版本中使用不同的进行签名。所以这是我到目前为止尝试的: 当我运行时,我得到一个和以下错误消息: 所以我假设。*Gradle脚本的一部分不是放置代码签名配置的正确位置。