Установите переменные в build.gradle - PullRequest
0 голосов
/ 21 сентября 2018

В моем build.gradle ( Модуль: app ) я указал одну buildConfigField и одну resValue переменную.

buildTypes {
    release {
        debuggable false
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        buildConfigField "String", "APP_EXP_DATE", "\"DEC 31 23:59:59 EDT 2018\""
        resValue         "String", "app_exp_date", "\"DEC 31 23:59:59 EDT 2018\""
    }
}

Тогда я ожидалиспользовать их в моем коде Java следующим образом:

BuildConfig.APP_EXP_DATE
R.string.app_exp_date

, но, к сожалению, возникают следующие ошибки:

ошибка: не удается найти переменную символа APP_EXP_DATE

ошибка: недопустимое начало типа

Как я могу заставить его работать с переменными из gradle в моем Java-коде?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Ну, у вас есть несколько вариантов:

  1. Определите ваши строки и значения в defaultConfig следующим образом:

    android {
        // your code
        defaultConfig {
            // your code
            resValue "string", "<key>", "<value>" 
            buildConfigField "string", "<key>", "<value>"
            // ...
        }
        // your code
    }
    
  2. Вы можете поставитьВаша строка в Release и Debug типа

    buildTypes {
        release {
            // your code
            resValue "string", "<key>", "<value>" 
            buildConfigField "string", "<key>", "<value>"
            // ...
        }
        debug {
            // your code 
            resValue "string", "<key>", "<value>" 
            buildConfigField "string", "<key>", "<value>"
            // ...
        }
    }
    

Надеюсь, эта помощь!

0 голосов
/ 21 сентября 2018

Как я могу заставить его работать с переменным из gradle в моем Java-коде?

Кажется, проблема в ваших кодах связана с release buildType, который можетвызвать проблему (не решить ее.

Но вот как это должно быть:

В gradle.properties:

ExpDate="DEC 31 23:59:59 EDT 2018"

В app/Build.gradle ( Обратите внимание, что он должен быть в коде блока Android ):

def APP_EXP_DATE = '"' + ExpDate + '"' ?: '"Define Expire Date"'
android.buildTypes.each { type -> 
    type.buildConfigField 'String', 'APP_EXP_DATE', ExpDate

}

Использование:

BuildConfig.APP_EXP_DATE

Как Toast:

Toast.makeText(activity, BuildConfig.APP_EXP_DATE, Toast.LENGTH_LONG).show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...