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.

Reply via email to