Я попытался сохранить URL-адрес API моего приложения в config.properties в корневой папке проекта и попытаться прочитать это значение в файле build.gradle на уровне модуля и назначить его resValue для глобального доступа в приложении.
но я столкнулся с проблемой. Я сохраняю URL-адрес в файле свойств и пытаюсь запустить приложение на основе варианта сборки, но компилятор вернет ошибку. как сохранить глобальное значение? .
Заранее спасибо.
Вот что я сделал в build.gradle, чтобы прочитать config.properties
def configProperties = new Properties()
configProperties.load(new FileInputStream(rootProject.file("config.properties")))
В buildTypes
buildTypes {
rc {
resValue("String", "APP_URL", configProperties.getProperty('RC_URL'))
}
}
Во время компиляции будет отображаться эта ошибка
Ошибка:Сборка: не удалось
: uimodule: mergeDevResources
uimodule / build / сгенерированный / res / resValues / dev / values / gradleResValues.xml Не удается определить тип тега "https://www.dummyurl_dev.com/"





Наконец-то я нашел решение этой проблемы,
Внесите новую переменную в buildTypes в build.gradle на уровне модуля, замените resValue в buildConfigField и передайте аргументы, подобные этому "\"$appUrl\""
build.gradle:уровень модуля
buildTypes {
rc {
def appUrl = configProperties['RC_URL']
buildConfigField("String", "APP_URL", "\"$appUrl\"")
// following line made this error
//resValue("String", "APP_URL", configProperties.getProperty('RC_URL'))
}
}
BuildConfig.java: для справки я добавил сюда свой код файла buildconfig, для чего я это сделал.
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.mohan.uimodule";
public static final String BUILD_TYPE = "rc";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
//types of url which i have in config.properties
public static final String DEV_URL = "https://www.dummyurl_dev.com/";
public static final String PROD_URL = "https://www.dummyurl_prod.com/";
public static final String RC_URL = "https://www.dummyurl_rc.com/";
// Fields from build type: rc
public static final String APP_URL = "https://www.dummyurl_rc.com/";
}
Решение: это ожидаемый результат, который я получил от buildconfig.java, и это мое ожидание тоже
public static final String APP_URL = "https://www.dummyurl_rc.com/";
Надеюсь, этот ответ поможет. удачного кодирования, спасибо :)
@moderator, могу я узнать, в чем причина отрицательного голоса по этому вопросу