Подтвердить что ты не робот

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?

4b9b3361

Ответ 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.