4

我正在尝试使用Android StudioBuildConfig中的 Gradle 将 URL 添加到我的文件中。所以我将此代码添加到文件中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}"'
    }
}

之后是依赖关系,但我认为它与问题无关。

4

3 回答 3

1

尝试这个:

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
于 2018-07-17T05:12:11.007 回答
0

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

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          package="com.example.android">
于 2020-10-24T05:55:04.190 回答
0

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

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

要在 Java 代码中获取属性值,您必须这样做:

String API_URL = BuildConfig.MIDTRANS_API;

注意:为了在发布版本中访问此属性,您还必须在发布类型下复制它。然后将 Build Variant 更改为 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"
    }
}

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

于 2018-07-17T05:19:22.013 回答