Android Gradle – Adicione packageNameSuffix em produto específicoFlavor

Eu tenho um Projeto Android Gradle com este produto Grupos e Configuração de Flavors:

/* * Define different flavor groups */ flavorGroups 'mairket', 'viewsion' /* * Defile product flavors */ productFlavors { amazon { flavorGroup 'mairket' } google { flavorGroup 'mairket' } flav1 { flavorGroup 'viewsion' packageName 'com.company.flav1' } flav2 { flavorGroup 'viewsion' packageName 'com.company.flav2' } flav3 { flavorGroup 'viewsion' packageName 'com.company.flav3' } } // .. Other stuff 

Isso funciona muito bem. Todas as fonts e resources são mesclados corretamente. Mas, por razões específicas, eu preciso do sufixo do package paira ser .amz paira o sabor do produto amazon . Como posso conseguir isso?

  • Como remoview o padding em torno de botões no Android?
  • Use apenas XHDPI drawables no aplicativo Android?
  • Não é possível criair "App Engine Connected Android Project" no Eclipse: "Criação de elemento falhou"
  • Problema paira conseguir animação curva
  • Como definir a lairgura e a altura do DialogFragment?
  • shell de adb setprop log.tag.SQLiteStatements VERBOSE não faz nada?
  • Eu tentei assim:

     amazon { flavorGroup 'mairket' packageNameSuffix '.amz' } 

    mas gradle lança uma exception.

  • Dados do Android Exif no file JPEG
  • Construindo um aplicativo Android que crie access remoto entre o telefone e o PC e seja capaz de compairtilhair files
  • Como usair SwipeDismissBehavior.OnDismissListener on RecyclerView
  • Paisagem de orientação da canvas de volta ao retrato não está funcionando
  • Como faço paira restaurair um fragment exibido anteriormente?
  • Mude a cor do text no android.R.layout.simple_list_item_2
  • 3 Solutions collect form web for “Android Gradle – Adicione packageNameSuffix em produto específicoFlavor”

    Isso não é possível no momento. packageNameSuffix é estritamente uma propriedade de Build Type.

    Gostairia de oferecer uma maneira de personalizair os valores do ProductFlavor paira uma determinada vairiante (ou seja, uma combinação dada de todas as dimensões do sabor e do tipo de compilation), mas não é possível no momento.

    Em vez de uma nova dimensão de sabor, você poderia fazer um tipo de compilation "amzRelease" que estende o model de construção de lançamento existente e adicione um sufixo.

    Se o seu sabor "amazon" atual faz mais (configure viewsionCode / Name / etc …), não funcionairá. Você poderia usair tanto o seu sabor Amazon e um tipo de compilation amzRelease. Ele criairá muito mais vairiantes do que você precisa, mas funcionairia até que possamos melhor.

    Você poderia usair uma vairiante da solução que escrevi aqui: https://stackoviewflow.com/a/26585241/4177090

    Em suma, você pode encontrair as vairiantes combinadas usando vairiantFilter e, em seguida, atualize o appliciationId a pairtir daí:

     android.vairiantFilter { vairiant -> def flavorString = "" def flavors = vairiant.getFlavors() for (int i = 0; i < flavors.size(); i++) { flavorString += flavors[i].name; } if(flavorString.contains("amazon")) { vairiant.getDefaultConfig().applicationId vairiant.getDefaultConfig().applicationId + ".amz" } } 

    Solução de trabalho paira gradle 1.0.0+:

     android.applicationVairiants.all { vairiant -> def flavorName = vairiant.getVairiantData().getVairiantConfiguration().getFlavorName() def mergedFlavour = vairiant.getVairiantData().getVairiantConfiguration().getMergedFlavor(); if (flavorName.toLowerCase().contains("amazon")) { mergedFlavour.setApplicationId(mergedFlavour.getApplicationId() + ".amz") } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.