Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在build.gradle中有条件地定义resValue_Android_Android Gradle Plugin - Fatal编程技术网

Android 在build.gradle中有条件地定义resValue

Android 在build.gradle中有条件地定义resValue,android,android-gradle-plugin,Android,Android Gradle Plugin,我在build.gradle中定义resValue,如下所示 defaultConfig { ................................ ................................ resValue "string", "google_api_web_client_id", google_api_web_client_id } geo_api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

我在build.gradle中定义resValue,如下所示

defaultConfig {
    ................................
    ................................ 
    resValue "string", "google_api_web_client_id", google_api_web_client_id

}
geo_api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
geo_api_key_debug=xxxxxxxxxxxxxxxxxxyyyyyyyyyyyyy

该值位于
gradle.properties
文件中

我想为debug build设置一个单独的值,比如,但是变量名应该是相同的
google\u api\u web\u client\u id

在我的
gradle.properties
文件中,我放置了以下内容

defaultConfig {
    ................................
    ................................ 
    resValue "string", "google_api_web_client_id", google_api_web_client_id

}
geo_api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
geo_api_key_debug=xxxxxxxxxxxxxxxxxxyyyyyyyyyyyyy

我想要的是,当构建类型为debug时,它将自动接受debug值,如果是release,它将接受release值。 我可以通过定义常量来实现,但在这种情况下,我必须将这些值放在build.gradle中。这是我不想要的


我怎样才能做到这一点呢?

您可以按如下方式进行操作

buildTypes {
    release {
        buildConfigField "String", "google_api_web_client_id", "YUOR_CLIEN_ID"
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debug {
        buildConfigField "String", "google_api_web_client_id", "YUOR_CLIEN_ID"
    }
}

你可以这样做

buildTypes {
    release {
        buildConfigField "String", "google_api_web_client_id", "YUOR_CLIEN_ID"
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debug {
        buildConfigField "String", "google_api_web_client_id", "YUOR_CLIEN_ID"
    }
}

你可以这样说

buildTypes {
    debug {
        resValue 'string', 'google_api_web_client_id', 'debug_key'
    }
    release {
        resValue 'string', 'google_api_web_client_id', 'release_key'
    }
}

你可以这样说

buildTypes {
    debug {
        resValue 'string', 'google_api_web_client_id', 'debug_key'
    }
    release {
        resValue 'string', 'google_api_web_client_id', 'release_key'
    }
}

我认为这有助于你和其他类似的问题

在您的
gradle.properties中

MY_GOOGLE_API_KEY = "234235623"
在你的
build.gradle
(应用程序)中


我认为这有助于你和其他类似的问题

在您的
gradle.properties中

MY_GOOGLE_API_KEY = "234235623"
在你的
build.gradle
(应用程序)中


你试过在
android中的
buildTypes{
下给出它吗{
是的,但是在这种情况下,我必须把硬编码的值放在
build.gradle
中。我需要把它们放在
gradle.properties
文件中。嘿,你发现这个答案正确吗?你试过在
android中的
buildTypes{
下给出它吗{
是的,但在这种情况下,我必须将硬编码值放入
build.gradle
。我需要将它们放入
gradle.properties
文件中。嘿,你发现这个答案正确吗?谢谢你的回答,但在这种情况下,我必须在build.gradle文件中放入debug_键或release_键。我不想这样做。我将它们放入gradle文件中。属性。嘿,你可以在gradle.properties中声明变量,并直接在build.gradleHanks中使用它们作为你的响应,但在这种情况下,我必须在build.gradle文件中放入debug\u key或release\u key。我不想这样做。我将它们放入gradle.properties中。嘿,你可以在gradle.properties中声明变量,并直接使用它们n构建。gradle@Mithun如果您认为我的答案正确,请务必将其标记为已接受,以便对您有所帮助others@Mithun如果你认为我的答案是正确的,请注意将其标记为已接受,以便对其他人有所帮助