Intereting Posts
OnOptionsItemSelected не вызывается при использовании actionLayout (SherlockActionBar) «Полное действие с использованием» при попытке загрузить в WebView Пример Bluetooth для Android Селектор цвета Android не работает с настраиваемыми атрибутами Appcompat показать прогресс в панели действий вызывает NPE Android: есть ли идиома для итерации через SparseArray Будет ли TelephonyManger.getDeviceId () возвращать идентификатор устройства для планшетов, таких как вкладка Galaxy …? Пример утечки памяти для Android из Google I / O Обтекание Textview вокруг View Как сделать Android-представление, которое переворачивается между видами на салфетки / fling Как добавить несколько TextView dynamicall в определение LinearLayout в main.xml Отсутствие эффекта пульсации при касании в recycliewiew Как вставить один макет в другой в моем случае? Android перетащить и вернуться к предыдущей деятельности, например, Facebook и Google Фото Можно ли смешивать «предпочтение» и заголовок предпочтения?

Gradle Android plugin генерирует R-файлы для разных продуктов?

Я пытаюсь объединить мое бесплатное приложение и платное приложение. Продукт Flavors новой системы сборки Android, похоже, идеально подходит для моей проблемы.

У меня хороший вкус freeApp, однако, когда я создаю аромат paidApp, создаваемый R-файл находится в структуре пакета, которая определена в freeApp.

Вот фрагмент файла gradle.build:

productFlavors { freeApp { versionCode 201308020 versionName "2.0.13_free" packageName "com.flyingspheres.android" } paidApp { versionCode 201305110 versionName "2.0.10_paid" packageName "com.flyingspheres.android.inventory" } 

Я всегда считал, что расположение файла R определяется именем пакета в манифесте. Я проверил, что файл манифеста генерируется правильно.

Проблема в том, что файл R для обоих вариантов находится в одном месте. Грэдл требует, чтобы манифест жил в основном дереве источника, так что любая версия манифеста, которую я помещал в основное исходное дерево, где будет создаваться файл R.java.

Предполагая, что я получаю файлы R для генерации в правильном месте для каждого аромата; Как должны выполняться инструкции импорта для файла R, чтобы каждый вкус ссылался на правильный R-файл?

Вот скриншот моей структуры проекта:

Введите описание изображения здесь

Каждый файл AndroidManifest.xml является полным и полным манифестом – согласно документации манифест в главном дереве должен полностью перезаписать версию аромата продукта. Хотя это явно не происходит, потому что активность, которую следует запустить, и контент-провайдеры не перезаписываются.

Любое понимание того, что я делаю неправильно, было бы очень полезно. Это должно быть очень распространенной ситуацией, с которой столкнулся бы любой, кто переопределит имя пакета. Я пытаюсь понять это примерно неделю, и, похоже, я не могу туда попасть сам.

Благодаря,

-Аарон

Solutions Collecting From Web of "Gradle Android plugin генерирует R-файлы для разных продуктов?"

Под плагином gradient 0.7.3 андроида, созданный файл R.java только для имени пакета src/main . Он содержит все ресурсы для разных вкусов, он просто помещает их в один сгенерированный файл R.java . Я слышал об этом из- за разговора .

Каково ваше имя пакета в src/main/AndroidManifest.xml ? Я предполагаю, что это com.flyingspheres.android

Попробуйте импортировать R в свои классы, которым необходимо обращаться к ресурсам программно, используя имя пакета src/main .

Например

 import com.flyingspheres.android.R;