2015-03-16 2 views
0

У меня возникла проблема с конфигурацией проектов.Как создать ароматы для нескольких приложений в одном проекте

Я хочу, чтобы определить структуру проекта, как это:

Три приложения (с очень схожими функциями) ароматизаторы с бесплатным & про версию каждой, это означает, что будет 6 приложение версии: - A (про, бесплатно) - B (pro, free) - C (pro, free).

А теперь, например, я создаю проект B (бесплатную версию) и объединяю ресурсы с B (pro version). Когда ресурс из B (бесплатная версия) отсутствует, тогда возьмите его из pro версии, а затем, когда он также отсутствует, получите ресурсы по умолчанию из main.

Главное, каждая версия, например, A (бесплатно) и A (про) имеют некоторые различные ресурсы (например, значок приложения, логотип и т.д.)

На самом деле у меня есть что-то вроде этого, но это не работает, как я хочу.

productFlavors { 
    aPro { 
     applicationId "com.example.apro" 
    } 

    aFree { 
     applicationId "com.example.afree" 
    } 

    bPro { 
     applicationId "com.example.bpro" 
    } 

    bFree { 
     applicationId "com.example.bfree" 
    } 

    cPro { 
     applicationId "com.example.cpro" 
    } 

    cFree { 
     applicationId "com.example.cfree" 
    } 
} 

ответ

0

Что вы сделали в своем build.gradle файле. Помимо конфигурации градиента в вашем файле gradle, вам нужно добавить папки под вашей папкой app/src. Таким образом, структура проекта такова:

Project 
|---- app 
|  |---- build 
|  |---- libs 
|  |---- src 
|   |---- aPro 
|   |---- aFree 
|   |---- bPro 
|   |---- bFree 
|   |---- cPro 
|   |---- cFree 
|   |---- main 

Под основной папкой находится ваш основной код, например. функций, методов, ресурсов.

В папке productFlavorName, вы можете добавить папку ресурсов, добавьте иконки приложения, логотип и т.д.

Затем в Android Studio, откройте вкладку Build Variants (в левой панели в Android Studio, вертикально), выберите a Build Variant для отладки.

Подробнее в this official document.

+0

Я знаю, как создать такую ​​структуру, как ваша, и она будет работать, но не так, как я хочу. Ваше решение приведет к дублированию некоторых ресурсов, которые будут одинаковыми в свободной и про версии, например, строках или графике. И это неверно. – Skalaw

+0

@Skalaw Вы должны переместить дублированные ресурсы в папку 'main' – Wesley

+0

Итак, если у меня есть это 3 приложения (6 версий) в одном проекте, и, например, aPro и aFree имеют одинаковый ui" primary_color "в цветах.xml, но bPro и bFree имеют разные цвета. Поэтому я должен поместить тот же файл colors.xml в папку ресурсов aPro и aFree или есть способ объединить colors.xml между этими двумя версиями одного приложения? – Skalaw