Измените файл BuildConfig в AndroidStudio, используя gradle

Я пытаюсь добавить URL в мой BuildConfig использование файла gradle в Android Studio. Поэтому я добавил этот код в 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}"'
    }
}

После этого идет зависимость, но я думаю, что это не связано с проблемой

2 ответа

Решение

Попробуй это

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;

Примечание. Чтобы получить доступ к этому свойству в сборке релиза, вам также необходимо скопировать его в соответствии с типом релиза. Затем измените вариант сборки для выпуска.

В вашем файле 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">
Другие вопросы по тегам