Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set a global variable in gradle that can use in manifest file

I want to create a global variable similar with applicationId. It is set value in build.gradle and will be used in manifest. Is it possible?

like image 218
thanhnd Avatar asked Oct 23 '15 04:10

thanhnd


People also ask

How do I add a variable to a manifest file?

Yes you can inject build variables from gradle to manifest, it is done by adding variable to the build. gradle : android { defaultConfig { manifestPlaceholders = [hostName:"www.example.com"] } deployConfg { manifestPlaceholders = [hostName:"www.prod-server.com"] } ... } You can read more about how this works here.

How do I declare an activity in manifest XML?

There are several other attributes that you can include in this element, to define properties such as the label for the activity, an icon for the activity, or a theme to style the activity's UI. The android:name attribute is the only required attribute—it specifies the class name of the activity.


1 Answers

You can set them, for instance I'm setting it for different product flavors

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"
        }
}

And use it like this

<provider
    android:name="com.facebook.FacebookContentProvider"
    android:authorities="@string/authority"
    android:exported="true" />
like image 103
Marko Avatar answered Sep 19 '22 05:09

Marko