2015-06-19 3 views
2

У меня возникли проблемы с ароматами продукта. В моем проекте содержится библиотека с именем Core и приложение под названием i.e. Приложение.Конкретный аромат проекта Gradle для Android.

В build.gradle файл моего App модуля Я компиляция этого проекта библиотеки, как это:

dependencies { 
    compile project(':Core') 
} 

Это работает нормально, но проблема возникает, когда я хочу, чтобы ввести определенные ароматы продукта в обеих моей библиотеке проект «Core» и мой прикладной модуль «Приложение».

В Ядрах buid.gradle файла я определил один аромат продукта:

productFlavors { 
    flavor1 { 

    } 
} 

sourceSets.flavor1 { 

     java { 
      exclude '**/SomeFilePath/*' 
     } 
} 

Теперь, как только я добавил этот новый аромат моей основной библиотеки, я хочу изменить build.gradle в моем App, чтобы я мог скомпилировать только этот продуктFlavor с именем flavor1 от моего Core проект.

Я пробовал что-то вроде этого, но с ошибкой «Конфигурация с именем« flavor1Release »не найдена.»

dependencies { 
    compile project(path: ':Core', configuration: 'flavor1Release') 
} 

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

Кто-нибудь знает, как я могу это сделать?

ответ

0

Как я вижу, вы явно предоставляете конфигурацию для компиляции своего проекта. Но вам не нужно делать, потому что «Android Studio» уже предоставляют такую ​​возможность

To work on files from a particular flavor, click on Build Variants on the left of the IDE window and select the flavor you want to modify in the Build Variants panel,

enter image description here

Для вкуса продукта необходимо указать следующие вещи:

productFlavors { 
     demo { 
      applicationId "com.buildsystemexample.app.demo" 
      versionName "1.0-demo" 
     } 
     full { 
      applicationId "com.buildsystemexample.app.full" 
      versionName "1.0-full" 
     } 
    } 
+0

Я пытался без этого Кроме того, я не могу его скомпилировать. В тот момент, когда я добавил аромат продукта «flavor1» в мой основной проект, я больше не мог его скомпилировать из своего модуля приложений App. У меня было это в моих зависимостях модулей App {compile project (': Core')} С этим я мог бы нормально скомпилировать свой основной проект, но когда я добавил этот аромат в Core build.gradle, я не смог его скомпилировать из приложения модуль больше. продуктFlavors {flavor1 {}} Что мне не хватает? Единственное изменение в build.gradle - эта линия с новым вкусом? Как только я удалю этот аромат1, он может снова скомпилировать проект Core? – user20902

+0

@ user20902 Проверьте отредактированный ответ –

+0

Я добавил это, но я получаю эту ошибку сейчас: Ошибка: Библиотечные проекты не могут установить applicationId. applicationId настроен на «com.example.Core» в аромате «flavor1». Этот основной проект - это библиотека, и я нигде не определил это приложение, просто в этом аромате, где вы указали, что этого не хватает. Знаете ли вы, в чем проблема? – user20902

Смежные вопросы