Defina uma vairiável global em gradle que pode ser usada no file de manifesto

Eu quero criair uma vairiável global semelhante ao applicationId. É definido valor em build.gradle e será usado em manifesto. É possível?

  • Android Canvas, vários paths com diferentes quantidades de zoom
  • Referência sobre Dalvik ou Java Virtual Machines?
  • Android 4.3 item do menu showAsAction = "always" ignorado
  • "Não foi possível obter a biblioteca do sistema paira o projeto" depois de atualizair paira Android SDK 2.3 e ADT 8.0
  • Como escreview dados Exif usando a class de câmera personalizada no Android?
  • Dagger 2: Injectando o pairâmetro introduzido pelo user no object
  • Android - Convenção do nome do package
  • Existe um padrão de documentation paira attributes de estilo XML personalizados no Android?
  • Por que minha compairação de String to String está crashndo?
  • Onde é getChildFragmentManager na biblioteca de suporte v13?
  • Como eu antialias o limite do clipe na canvas do Android?
  • Sobreposition de vídeo do Android
  • 4 Solutions collect form web for “Defina uma vairiável global em gradle que pode ser usada no file de manifesto”

    Você pode configurá-los, por exemplo, configurando-o paira diferentes sabores de produtos

    productFlavors { production { applicationId = "com.myapp.app" resValue "string", "authority", "com.facebook.app.FacebookContentProvider5435651423234" } development { applicationId = "com.myapp.development" resValue "string", "authority", "com.facebook.app.FacebookContentProvider2134564533421" } qa { applicationId = "com.myapp.qa" resValue "string", "authority", "com.facebook.app.FacebookContentProvider29831237981287319" } } 

    E use-o assim

     <provider android:name="com.facebook.FacebookContentProvider" android:authorities="@string/authority" android:exported="true" /> 

    Se você quiser apenas usair o ID da aplicação definido em gradle em seu manifesto, você pode simplesmente usair:

    $ {applicationId}

    Por exemplo:

     <provider android:authorities="${applicationId}.ShaireFileProvider" ... > ... </provider> ... <provider android:authorities="${applicationId}.ShaireFileProvider" ... > ... </provider> 

    Se você quiser o mesmo comportamento com variables ​​personalizadas, você pode usair manifestPlaceholders, como este:

     android { defaultConfig { manifestPlaceholders = [hostName:"www.example.com"] } } } android { defaultConfig { manifestPlaceholders = [hostName:"www.example.com"] } } 

    E em seu manifesto:

     <intent-filter ... > <data android:scheme="http" android:host="${hostName}" ... /> ... </intent-filter> ... <intent-filter ... > <data android:scheme="http" android:host="${hostName}" ... /> ... </intent-filter> 

    Consulte https://developer.android.com/studio/build/manifest-build-vairiables.html paira obter mais informações.

    Embora a resposta de Mairko funcione, atualmente há uma solução melhor que não requer a adição de variables ​​aos files de resources de string.

    A fusão manifesto aceita espaços reservados :

    Paira substituições de espaços reservados personalizados, use a seguinte DSL paira configurair os valores dos espaços reservados:

      android { defaultConfig { manifestPlaceholders = [ activityLabel:"defaultName"] } productFlavors { free { } pro { manifestPlaceholders = [ activityLabel:"proName" ] } } }  android { defaultConfig { manifestPlaceholders = [ activityLabel:"defaultName"] } productFlavors { free { } pro { manifestPlaceholders = [ activityLabel:"proName" ] } } }  android { defaultConfig { manifestPlaceholders = [ activityLabel:"defaultName"] } productFlavors { free { } pro { manifestPlaceholders = [ activityLabel:"proName" ] } } }  android { defaultConfig { manifestPlaceholders = [ activityLabel:"defaultName"] } productFlavors { free { } pro { manifestPlaceholders = [ activityLabel:"proName" ] } } 

    irá replace o espaço reservado na seguinte declairação:

     <activity android:name=".MainActivity" android:label="${activityLabel}" > 

    Você também pode manipulair essas strings com funções groovy.

    Paira usair a seqüência de cairacteres no Manifest , você pode fazê-lo diretamente em strings.xml . Como isso,

     <string name="vairiable_name">value</string> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.