1

我正在尝试在使用 React Native 编写的 Android 应用程序中使用风味创建不同的 APK,但在运行.gradlew assembleRelease或任何其他组合时出现以下错误:

Could not find method applicationIdSuffix() for arguments [.free] on ProductFlavor_Decorated{name=free, dimension=null, minSdkVersion=null, targetSdkVersion=null, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptNdkModeEnabled=null, versionCode=null, versionName=null, applicationId=null, testApplicationId=null, testInstrumentationRunner=null, testInstrumentationRunnerArguments={}, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}}.

在此处输入图像描述

当我删除productFlavors构建过程正常工作。

build.gradle文件如下所示:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 27
        versionName "3.3.1"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }
    productFlavors {
        free {
            applicationIdSuffix ".free"
        }
        pro {
            applicationIdSuffix ".pro"
        }
    }
    ...
}

的内容gradle-wrapper.properties如下:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip

不知道出了什么问题。知道我缺少什么吗?另外,我使用Webstorm的是 IDE,因为我正在开发一个 ReactNative 项目,而且我主要处理 JS 代码,如果我使用它,事情会变得更容易,尤其是关于 android 配置AndroidStudio

谢谢

4

1 回答 1

0

将 resValue 行添加到您的“免费”风味中

productFlavors {
        free {
            applicationIdSuffix ".free"
            resValue "string", "build_config_package", "com.your_package" // the package of your Android app
        }
        pro {
            applicationIdSuffix ".pro"
        }
    }
    ...
于 2020-04-13T00:41:22.987 回答