ответ

1

Вы можете указать файлы для ароматизаторов. Если бы я был вами, я бы сделал что-то вроде этого: поместите файл в источник main/java/your/package, позвоните ему CustomClass.java. Он содержит что-то вроде этого:

public class CustomClass { 
    public static void myCustomMethod() { 
     //Do something here... 
    } 
} 

После этого вы можете создать аромат конкретную версию этого класса в папке имени аромата (рядом с основной папкой). Так положить CustomClass.java здесь: your_flavor_name/java/your/package А делать что-то другое:

public class CustomClass { 
     public static void myCustomMethod() { 
      //Do something here for that specific flavor! 
     } 
    } 

Строить будет объединять файлы и использовать специфические для вас вкуса, и использовать основную версию, если нет аромата конкретного файла не найден , Вы можете использовать его для чертежей и всех других файлов (активов, ...).

После этого вам нужно только создать новый колорит. В вашем Gradle добавить следующее:

productFlavors { 
     your_flavor_name { 
      applicationId "your.package" 
     } 
} 

Больше материала здесь: http://developer.android.com/tools/building/configuring-gradle.html

0

спасибо за ответ @GaborNovak

На самом деле, я искал что-то подобное для общего класса:

if("flavor-name".equals(getApplicationContext().getPackageName())){ 
       myIntent.setClass(thisClass.this, nextClass.class); 
      } 
      else { 
       myIntent.setClass(thisClass.this, nextClass.class); 
      } 

Я думаю, что это немного запутанно. Когда я пишу getApplicationContext.getpackageName ->, он получает определенный application_id выбранного вкуса в градиенте построения. Когда я пишу BuildConfig.APPLICATION_ID -> он получает имя пакета. Есть ли кто-нибудь, кто может объяснить эту логику? Разве это не смущает?

0

определяет два string.xml для двух product-flavors отдельно и добавить строку общего имени в каждом, например, добавить <string name="flavor">Flavor One</string> в string.xml 1-го аромата и добавить <string name="flavor">Flavor Two</string> в string.xml 2-го аромата. Теперь в методе получите значение строки flavor и соответственно добавьте строки кода. Потому что для двух ароматов аромат струны будет иметь два разных значения.

0

Создать класс в чем-то() в productFlavor:

Главная Общий источник:

main\java\com.exmaple.test\class.java - > something() 

Flavor1 Источник:

flavor\java\com.exmaple.test\class.java - > something() 

Flavor2 Источник:

flavor\java\com.exmaple.test\class.java - > something() 
Смежные вопросы