I'm new to gradle, i'm trying to build 2 flavor,
Froyo - 2.2 only and
GringerBreadPlus - 2.3 and newer
in myProject\MyApp\build.gradle i try this:
productFlavors {
GringerBreadPlus {
minSdkVersion 9
}
Froyo{
minSdkVersion 8
}
}
dependencies {
compile project(':ckChangeLogmaster')
compile project(':appirater')
compile 'com.android.support:support-v4:+'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
//compile 'com.google.android.gms:play-services:+'
GringerBreadPlusCompile 'com.google.android.gms:play-services:+'
//FroyoCompile 'com.google.android.gms:play-services:3.2.+'
...
}
> startup failed:
build file
'C:\Users\sgirotti\AndroidStudio\aJobSearch\aJobSearch\build.gradle
': 54: unexpected token: com.google.android.gms:play-services:+ @ line 54,
colum
n 26.
GringerBreadPlusCompile 'com.google.android.gms:play-services:+'
^
i don't understand.... i try to import from eclipse with the latest
Studio.... i also tryed to define productFlavors & dependencies on
myProject\build.gradle
what's wrong?!
Thanks in advance
On Thursday, April 3, 2014 10:21:41 PM UTC+2, Paweł Stankowski wrote:
>
> I found some workaround, which I described here:
>
> http://stackoverflow.com/questions/22313632/multi-flavor-compile-dependencies-in-gradle
>
> Generally I parse start task (eg. "assembleFreeFroyoDebug") given to
> gradle and check what flavours are specified. I store flavours in global
> variables and use them in following way:
>
> def getAdmobDependency() {
> return groupFlavor == "Froyo" ? files(getSdkDir() +
> '/extras/google/admob_ads_sdk/GoogleAdMobAdsSdk-6.4.1.jar') :
> 'com.google.android.gms:play-services:+'
> }
>
> [...]
>
> dependencies{
> freeCompile getAdmobDependency()
> }
>
> W dniu 2014-04-03 01:08, Xavier Ducrohet pisze:
>
> Yes this is only going to work for jar dependencies. If you have an aar
> dependency, it's not going to work.
>
> We're going to allow this but there's some work that needs to happen
> first before we can make progress on this.
>
>
> On Wed, Apr 2, 2014 at 2:01 PM, Paweł Stankowski
> <[email protected]<javascript:>
> > wrote:
>
>> You're right Croc, I made a mistake in problem's description - it
>> should be "freeFroyoCompile". However, I wrote it correctly in my gradle
>> script.
>>
>> Thank you Xavier, it almost work for me. Your example was not compiling,
>> but I did my best to use your idea.
>>
>> The code is below. Now I can compile for Froyo, but not for Gingerbread
>> because resources from dependency are not accessible:
>> ".../build/manifests/freegingerbread/debug/AndroidManifest.xml:40: error:
>> Error: No resource found that matches the given name (at 'value' with value
>> '@integer/google_play_services_version')."
>>
>> When I run froyo version compiled with this script, admob jar seems not
>> to be attached:
>> "E/dalvikvm﹕ Could not find class 'com.google.ads.AdView', referenced
>> from method pl.aambitny.spellscontainer.view.common.AdUtils.reloadAd"
>>
>> task fixDependencies << {
>> def freeFlavor = android.productFlavors.free;
>> def froyoFlavor = android.productFlavors.froyo;
>> def gingerbreadFlavor = android.productFlavors.gingerbread;
>>
>> android.applicationVariants.all { variant ->
>> def flavors = variant.productFlavors;
>> if (flavors.contains(freeFlavor) &&
>> flavors.contains(froyoFlavor)) {
>> variant.javaCompile.classpath +=
>> configurations.freeFroyoCompile;
>> } else if (flavors.contains(freeFlavor) &&
>> flavors.contains(gingerbreadFlavor)) {
>> variant.javaCompile.classpath +=
>> configurations.freeGingerbreadCompile
>> }
>> }
>> }
>>
>> tasks.whenTaskAdded { theTask ->
>> if (theTask.name.startsWith("compile")) {
>> theTask.dependsOn "fixDependencies"
>> }
>> }
>>
>> On Thursday, March 27, 2014 4:34:43 PM UTC+1, Xavier Ducrohet wrote:
>>
>>> It's not directly possible right now due to some issue in how we setup
>>> the tasks and variants. This should be possible in the long term though.
>>>
>>> Right now you could do something like this:
>>>
>>> configurations {
>>> freeFroyoCompile
>>> }
>>>
>>> dependencies {
>>> freeFroyoCompile ...
>>> }
>>>
>>> android.applicationVariants.all { variant ->
>>> if (variant is freeFroyo) {
>>> variant.javaCompile.classpath += freeFroyoCompile.files
>>> }
>>> }
>>>
>>>
>>>
>>>
>>> On Thu, Mar 27, 2014 at 7:37 AM, Croc <[email protected]> wrote:
>>>
>>>> "froyoFreeCompile" is probably not recognized because I think you
>>>> used the wrong order of flavors. The order should be the same as was
>>>> declared in "flavorGroups", so it should actually be "freeFroyoCompile".
>>>>
>>>>
>>>> On Saturday, March 22, 2014 8:06:49 PM UTC+1, Paweł Stankowski wrote:
>>>>>
>>>>> I have two flavor groups: "api" (froyo and gingerbread flavors) and
>>>>> "variant" (free and pro flavors).
>>>>>
>>>>> How to add dependency only to one build variant, ie only for
>>>>> froyo-free version? 'froyoFreeCompile' is not recognized by gradle (both
>>>>> freeCompile and froyoCompile are working as expected). If this is not
>>>>> possible directly, may I add such dependency using customized task?
>>>>>
>>>>> My build.gradle:
>>>>>
>>>>> ...
>>>>> flavorGroups "variant", "api"
>>>>>
>>>>> productFlavors {
>>>>> free {
>>>>> flavorGroup "variant"
>>>>> packageName "..."
>>>>> }
>>>>> pro {
>>>>> flavorGroup "variant"
>>>>> packageName "..."
>>>>> }
>>>>>
>>>>> froyo {
>>>>> flavorGroup "api"
>>>>> minSdkVersion 8
>>>>> }
>>>>> gingerbread {
>>>>> flavorGroup "api"
>>>>> minSdkVersion 9
>>>>> }
>>>>> }
>>>>> }
>>>>>
>>>>> dependencies {
>>>>> freeFroyoCompile files(getSdkDir() +
>>>>> '/extras/google/admob_ads_sdk/GoogleAdMobAdsSdk-6.4.1.jar')
>>>>> freeGingerbreadCompile 'com.google.android.gms:play-services:+'
>>>>> }
>>>>>
>>>>> ...
>>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "adt-dev" group.
>>>> To unsubscribe from this group and stop receiving emails from it,
>>>> send an email to [email protected].
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>>
>>> --
>>> Xavier Ducrohet
>>> Android SDK Tech Lead
>>> Google Inc.
>>> http://developer.android.com | http://tools.android.com
>>>
>>> Please do not send me questions directly. Thanks!
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "adt-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Xavier Ducrohet
> Android SDK Tech Lead
> Google Inc.
> http://developer.android.com | http://tools.android.com
>
> Please do not send me questions directly. Thanks!
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "adt-dev" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/adt-dev/JRUksl4XpWk/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected] <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
--
You received this message because you are subscribed to the Google Groups
"adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.