使用gradle更改AndroidStudio中的BuildConfig文件

使用gradle更改AndroidStudio中的BuildConfig文件,android,android-gradle-plugin,android-buildconfig,Android,Android Gradle Plugin,Android Buildconfig,我正在尝试使用中的gradle将url添加到我的BuildConfig文件中。因此,我将此代码添加到gradle文件中 buildTypes { debug { buildConfigField "String", "MIDTRANS_API", '"https://app.sandbox.midtrans.com/snap/v1"' } } 然后我尝试重建我的项目,希望这个值会出现在BuildConfig文件中,但事实并非如此。有人能解释一下如何正确地做到这一

我正在尝试使用中的
gradle
将url添加到我的
BuildConfig
文件中。因此,我将此代码添加到
gradle
文件中

buildTypes {
    debug {
        buildConfigField "String", "MIDTRANS_API", '"https://app.sandbox.midtrans.com/snap/v1"'
    }
}
然后我尝试重建我的项目,希望这个值会出现在
BuildConfig
文件中,但事实并非如此。有人能解释一下如何正确地做到这一点吗

我完整的
gradle
文件代码如下

apply plugin: 'com.android.library'

android {
    compileSdkVersion 27
    buildToolsVersion '27.0.3'
    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}
buildTypes {
    debug {
        buildConfigField "String", "DAR_API", '"{some string}"'
        buildConfigField "String", "DAR_API_AUTH", '"{some string}"'
        buildConfigField "String", "MIDTRANS_API", '"https://app.sandbox.midtrans.com/snap/v1"'
    }

    rc {
        minifyEnabled true
        debuggable true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField "String", "DAR_API", '"{some string}"'
    }

    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField "String", "DAR_API", '"{some string}"'
    }
}
之后是依赖关系,但我认为这与问题无关

试试这个

buildTypes {
        debug {
            buildConfigField "String", "MIDTRANS_API", "\"https://app.sandbox.midtrans.com/snap/v1\""
        }
        release {
            buildConfigField "String", "MIDTRANS_API", "\"https://app.sandbox.midtrans.com/snap/v1\""
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
在java中,同步gradle文件后,您可以通过下面的代码访问该文件

String url = BuildConfig.MIDTRANS_API

希望这将对您有所帮助。

我尝试在项目中使用相同的buildConfigField属性,并成功地在调试变量的BuildConfig文件下看到它

可能您的项目没有正确重建。尝试清理项目,然后重新构建它

要在Java代码中获取属性值,必须执行以下操作:

String API_URL = BuildConfig.MIDTRANS_API;
注意:为了在发布版本中访问此属性,您还必须在发布类型下复制它。然后将构建变量更改为release。

在你的gradle文件中这样做

buildTypes {

            debug {
                buildConfigField "String", "MIDTRANS_API", '"https://app.sandbox.midtrans.com/snap/v1"'
            }
            release {
                buildConfigField "String", "MIDTRANS_API", "https://app.sandbox.midtrans.com/snap/v1"
            }
        }

这应该可以解决您的问题。

我通过更改
manifest.xml
文件中尚未更新的包名解决了问题:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.android">


为了在
BuildConfig
文件中查看此字段,我是否应该将此字段添加到发行版中?因为我无法访问它,正如您在回答中所述,您应该重建您的项目,可能是为了在
BuildConfig
中添加字段,您知道,实际上我在
BuildConfig
中有其他字段,我将其值从
gradle
更改,并对项目进行了重建,但它仍然没有更改,为什么?您一定使用了错误的buildConfig文件。导入BuildConfig时,请确保它与应用程序模块的包名匹配。@ZeeshanShabbir“导入BuildConfig时,请确保它与应用程序模块的包名匹配。”我的导入不正确。谢谢你的帮助。