Gradle buildConfigField BuildConfig не может разрешить символ

Я использую Gradle для создания своего приложения для Android. Я пытаюсь использовать некоторые флаги на основе типа сборки (выпуск или отладка).

Мой файл Gradle выглядит так:

android { buildTypes { debug { buildConfigField 'boolean', 'PREPROD', 'true' buildConfigField 'boolean', 'STAGING', 'false' } release { buildConfigField 'boolean', 'PREPROD', 'false' buildConfigField 'boolean', 'STAGING', 'false' } } } 

И если я попытаюсь вызвать BuildConfig.PREPROD или BuildConfig.STAGING я получу ошибку «Не могу разрешить символ». Синхронизация Gradle прошла успешно, поэтому я не знаю, забыл ли я некоторые шаги, чтобы иметь возможность использовать эту функцию?

Сгенерированный файл BuildConfig.java является следующим (в файле build/source/buildConfig/debug/com.example.myapp ):

 package com.example.myapp; public final class BuildConfig { public static final boolean DEBUG = Boolean.parseBoolean("true"); public static final String PACKAGE_NAME = "com.example.myapp"; public static final String BUILD_TYPE = "debug"; public static final String FLAVOR = ""; public static final int VERSION_CODE = 400; public static final String VERSION_NAME = ""; } 

Я получал такую ​​же ошибку. Попробуйте нажать на синхронизацию , с правой стороны сохранить . Сделайте это после градильной синхронизации .

Убедитесь, что ваш файл импортирует правильный класс BuildConfig . Иногда, если у вас есть другие библиотеки проектов или модули, он может импортировать неверный buildConfig. Убедитесь, что ваш импорт похож на этот com.project.app.BuildConfig . У меня была такая же проблема, и проблема была в этом, надеюсь, это может помочь кому-то.

Изменения в файлах сборки град не обновляют генерацию класса BuildConfig, даже если вы нажмете желтую панель «sync now» вверху. Полная очистка приведет к созданию этого файла.

В Android Studio: Build -> Clean Project

Эта же проблема заставила меня замочить больше недели. В моем случае это был простой импорт. Я искал его, но как-то нигде в документах, которые я мог найти, он упоминает, что вам нужно импортировать класс BuildConfig в любом месте! И все же это логично. Я продолжал полагать, что это может быть автоматическим. Ну, это НЕ.

Поэтому попробуйте либо:

  • Щелкните один раз на BuildConfig. Часть кода, которая вызывает ошибку. Сообщение о помощи должно появиться в синем пузыре, говоря что-то вроде: « ? uk.co.package.app.BuildConfig? Alt + ENTER » Нажмите на него, и студия Android автоматически добавит недостающий импорт. или
  • Добавить import uk.co.package.app.BuildConfig; Где-то в списке вашего импорта.

Перестроить … это работает! Ну, это все равно для меня.

Надеюсь, что это поможет еще одному новичку-новичкам, которые меня любят!

Удостоверьтесь, что вы добавили свой параметр также в defaultConfig. Вероятно, вы используете стандартный buildVarient по умолчанию, а ваш параметр определен в специфицированном buildVariant.

В файле build gradle используйте это:

  defaultConfig { buildConfigField('String' , 'myParameter', 'someValue') } 

Затем в коде используйте это:

 String myParam= BuildConfig.myParameter; 

Надеюсь, это поможет, МА 🙂

Поиск вхождения BuildConfig. У меня был жуткий импорт несуществующего BuildConfig и компилятора вместо того, чтобы ловить, который указывал на случайную строку кода где-то еще!

В моем случае проблема заключалась в том, что я только что переименовал модуль моего проекта, но ссылки на имя этого модуля не были автоматически обновлены на AndroidManifest.xml .

Вручную переименовать этих и перестроить проект решила проблема.