ADT Eclipse + Gradle: неполный BuildConfig.java
Я использую Android Developer Tools 22, Eclipse Indigo и текущий плагин Gradle для Eclipse.
Теперь я хотел бы использовать разные Flavors, определяя в файле build.gradle:
productFlavors{
A {
packageName "com.test.A"
buildConfig "public final static String FLAVOR = \"A\";"
}
B {
packageName "com.test.B"
buildConfig "public final static String FLAVOR = \"B\";"
}
}
Насколько я знаю, я могу получить доступ к этим переменным с помощью BuildConfig.FLAVOR, но определение FLAVOR отсутствует в сгенерированной папке BuildConfig.java в папке.
Если я собираю свой проект через Gradle, то корректно и полно BuildConfig.java создается в папке build/source/buildConfig/[A | B]/[debug | release]/com/test/.
Он работает, если я строю проект над gradle, но я не могу работать с Eclipse, потому что он ожидает, что переменные будут определены в папке BuildConfig.java в папке
Могу ли я заставить Gradle или adt создать правильную BuildConfig.java в папке gen?
Ответы
Ответ 1
Android Studio имеет крайнюю грань (еще не бета).
Как указано в Проблема 57668 от команды Android (поднята @arcone)
Участник проекта №2 x... @android.com
Плагин eclipse несовместим с плагином Android.
Вы не сможете импортировать проект Android gradle в Eclipse, используя поддержку по умолчанию gradle в Eclipse.
Чтобы заставить его работать в Eclipse, нам нужно будет изменить плагин gradle для Eclipse, так же, как мы модифицируем поддержку gradle в IntelliJ
Это команда Android работает над плагином gradle для плагинов IntelliJ и gradle для Eclipse также необходимо обновить.
Вы можете работать в Eclipse с ADT и запускать gradle с помощью Nodeclipse/Enide gradle для Eclipse
(marketplace)
Некоторые скриншоты для Gradle для Eclipse:
![]()
![]()
Есть некоторые планы для Android с gradle Разработка в Eclipse
Ответ 2
Использование Eclipse с новым плагином Gradle не поддерживается, вы должны использовать Android Studio вместо этого.
Кроме того, поскольку вы спросили об этом, у плагина была добавлена эта функциональность. Из релизов для версии 0.7.0 плагина Android Gradle:
Build Config теперь автоматически содержит больше констант для PACKAGE_NAME, VERSION_CODE, VERSION_NAME, BUILD_TYPE, FLAVOR, а также FLAVOR_, если имеется несколько параметров аромата.
Ответ 3
Могу ли я заставить gradle или adt создать правильную BuildConfig.java в папке gen?
Да, с взломом: один раз :generateDebugBuildConfig
(замените Debug
на нужный вам вариант) запустился в gradle, у вас будет BuildConfig.java
то, что вам нужно.
Я сделал это в Windows, но должен быть тем же самым для Unix с вашей любимой оболочкой и cp
- Откройте "Свойства проекта" и перейдите к "Строителям"
- Добавить "Программу"
- Местоположение:
C:\Windows\System32\cmd.exe
- Рабочий каталог: просмотрите рабочее пространство... и выберите свой проект,
результат будет примерно таким: ${workspace_loc:/YourProject}
- Аргументы:
/c "xcopy build\generated\source\buildConfig\debug gen /S /I /Y"
- Настройка при запуске
- Вкладка "Обновить": "Конкретные ресурсы" выберите папку
gen
- Вкладка "Параметры сборки": "После очистки", "Вручную", "Авто" и "Укажите ресурсы" в качестве корневой папки проекта.
- Убедитесь, что новый конструктор помещен между
Android Pre Compiler
и Java Builder
Примечание: это действительно работает против ADT и, вероятно, будут отсутствовать другие недостающие фрагменты, которые могут быть трудно обрабатывать (applicationIdSuffix
, resValue
, варианты исходных папок, просто чтобы назвать несколько). Может быть, проще отказаться от Eclipse ADT и перейти на Android Studio, Google, похоже, хочет этого, не публично признавая это. Реального прогресса в ADT не было, поскольку они заявили, что будут поддерживать его на I/O 2013.