Hey John, I am facing the exact same problem. Did you find a solution?
-Parveen
On Friday, September 19, 2014 3:34:35 PM UTC-5, John Frey wrote:
>
> So I'm having this same issue right now. Is there no way for a consumer of
> an aar library to exclude a transitive dependency buried within the /libs
> folder of said library? For example...
>
> compile('com.example.mylibrary:1.0') {
> exclude module: 'android-support-v4'
> exclude module: 'date4j'
> }
>
>
> This doesn't work if date4j and android-support-v4 are jars inside the
> libs folder.
>
> On Wednesday, April 2, 2014 1:56:56 AM UTC-5, Roman Mazur wrote:
>>
>> I haven't tried to solve that particular problem, but you can try using
>> 'provided' configuration for a local jar file.
>> I saw complains that local file dependencies from 'provided'
>> configuration are still included to aar packages though.
>>
>>
>> On 31 March 2014 23:58, Cheng Yang <[email protected]> wrote:
>>
>>> Hi Roman, Have you figure out how to exclude the jar befoer publishing?
>>>
>>> On Monday, July 22, 2013 9:45:58 PM UTC-7, Roman Mazur wrote:
>>>>
>>>> Yes, this is exactly what I want.
>>>> But can I exclude a jar in libs folder from my dependencies before
>>>> publishing?
>>>>
>>>> On Tuesday, 23 July 2013 02:11:29 UTC+3, Xavier Ducrohet wrote:
>>>>>
>>>>> The requirement on the library is not declared at runtime in this
>>>>> case, so this is different from what I understood.
>>>>>
>>>>> In this case you would add flurry as a dependency on your library but
>>>>> remove it from the dependencies when publishing the artifact. Then the
>>>>> app
>>>>> would have to manually include the Flurry library if they want to use it.
>>>>>
>>>>>
>>>>> On Fri, Jul 19, 2013 at 11:02 PM, Roman Mazur <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Let's imagine a library that provides some Android activities and can
>>>>>> integrate with some statistics services, let it be Flurry to illustrate.
>>>>>> But it does so only when the app actually uses that SDK.
>>>>>> We cannot get Flurry SDK jar from a repository, so that it must be
>>>>>> placed into libs folder of our Android library. But our library does not
>>>>>> require this jar to provide its core functionality. But now we cannot
>>>>>> use
>>>>>> our library without omitting Flurry SDK jar being included to
>>>>>> application
>>>>>> package.
>>>>>> I do understand that this library can be divided into two parts, like
>>>>>> core and flurry integration. But as for me, going the described way can
>>>>>> be
>>>>>> useful too.
>>>>>>
>>>>>>
>>>>>> On 19 July 2013 19:26, Xavier Ducrohet <[email protected]> wrote:
>>>>>>
>>>>>>> If it's determined at runtime whether the lib is needed or not, then
>>>>>>> it's still needed to be packaged in case it's needed at runtime. am I
>>>>>>> missing something?
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jul 9, 2013 at 12:33 AM, Roman Mazur <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> What if a jar placed in the libs directory is optional and its
>>>>>>>> presence is determined in runtime by the library? Is there a way to
>>>>>>>> exclude
>>>>>>>> it from aar package?
>>>>>>>>
>>>>>>>>
>>>>>>>> On Friday, 24 May 2013 22:26:52 UTC+3, Xavier Ducrohet wrote:
>>>>>>>>
>>>>>>>>> This is expected when referencing local jars from library
>>>>>>>>> projects. There's no way around it, we need to include it in aar.
>>>>>>>>>
>>>>>>>>> I'm working right now to have those in a repository so that you
>>>>>>>>> can reference artifact instead which will allow Gradle to resolve the
>>>>>>>>> dependencies correctly when building an app using different library
>>>>>>>>> projects that all depends on support-v4 or other support libs.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, May 24, 2013 at 12:24 PM, Traun Leyden <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I'm creating a library using this build.gradle:
>>>>>>>>>>
>>>>>>>>>> ...
>>>>>>>>>> repositories {
>>>>>>>>>> mavenCentral()
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> dependencies {
>>>>>>>>>>
>>>>>>>>>> compile files('libs/android-support-v4.jar')
>>>>>>>>>>
>>>>>>>>>> instrumentTestCompile 'commons-io:commons-io:2.0.1'
>>>>>>>>>>
>>>>>>>>>> compile 'org.codehaus.jackson:jackson-core-asl:1.9.2'
>>>>>>>>>> compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.2'
>>>>>>>>>>
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> uploadArchives {
>>>>>>>>>> repositories {
>>>>>>>>>> mavenDeployer {
>>>>>>>>>> repository(url: uri("../testrepo"))
>>>>>>>>>> ..
>>>>>>>>>> }
>>>>>>>>>> }
>>>>>>>>>> }
>>>>>>>>>> ..
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> and then I'm running "./gradlew :CBLite:uploadArchives", which
>>>>>>>>>> causes an .aar to be generated in the local testrepo directory.
>>>>>>>>>> When I
>>>>>>>>>> unzip the .aar, I can see that it contains lib/ android-support-
>>>>>>>>>> v4.jar.
>>>>>>>>>>
>>>>>>>>>> The problems start when I try to use the generated .aar as a
>>>>>>>>>> dependency in another project. Here's the build.gradle from the
>>>>>>>>>> project
>>>>>>>>>> which consumes this dependency:
>>>>>>>>>>
>>>>>>>>>> ...
>>>>>>>>>> repositories {
>>>>>>>>>> mavenCentral()
>>>>>>>>>> maven {
>>>>>>>>>> url "file:///../couchbase-lite-and
>>>>>>>>>> roid/CouchbaseLiteProject/testrepo"
>>>>>>>>>> }
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> dependencies {
>>>>>>>>>> compile files('libs/android-support-v4.jar')
>>>>>>>>>> compile 'com.couchbase.cblite:CBLite:1.0'
>>>>>>>>>> }
>>>>>>>>>> ...
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> when I try to build the project with "./gradlew assemble", I get
>>>>>>>>>> this error:
>>>>>>>>>>
>>>>>>>>>> :HelloCBLite:dexDebug
>>>>>>>>>>
>>>>>>>>>> UNEXPECTED TOP-LEVEL EXCEPTION:
>>>>>>>>>> java.lang.IllegalArgumentException: already added:
>>>>>>>>>> Landroid/support/v4/app/ActivityCompatHoneycomb;
>>>>>>>>>> at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSectio
>>>>>>>>>> n.java:123)
>>>>>>>>>> at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
>>>>>>>>>> at com.android.dx.command.dexer.Main.processClass(Main.java:490)
>>>>>>>>>> at com.android.dx.command.dexer.Main.processFileBytes(Main.java
>>>>>>>>>> :459)
>>>>>>>>>> at com.android.dx.command.dexer.Main.access$400(Main.java:67)
>>>>>>>>>> at com.android.dx.command.dexer.Main$1.processFileBytes(Main.ja
>>>>>>>>>> va:398)
>>>>>>>>>> at com.android.dx.cf.direct.ClassPathOpener.processArchive(Clas
>>>>>>>>>> sPathOpener.java:245)
>>>>>>>>>> at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPat
>>>>>>>>>> hOpener.java:131)
>>>>>>>>>> at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOp
>>>>>>>>>> ener.java:109)
>>>>>>>>>> at com.android.dx.command.dexer.Main.processOne(Main.java:422)
>>>>>>>>>> at com.android.dx.command.dexer.Main.processAllFiles(Main.java:
>>>>>>>>>> 333)
>>>>>>>>>> at com.android.dx.command.dexer.Main.run(Main.java:209)
>>>>>>>>>> at com.android.dx.command.dexer.Main.main(Main.java:174)
>>>>>>>>>> at com.android.dx.command.Main.main(Main.java:91)
>>>>>>>>>> 1 error; aborting
>>>>>>>>>> :HelloCBLite:dexDebug FAILED
>>>>>>>>>>
>>>>>>>>>> FAILURE: Build failed with an exception.
>>>>>>>>>>
>>>>>>>>>> * What went wrong:
>>>>>>>>>> Execution failed for task ':HelloCBLite:dexDebug'.
>>>>>>>>>> > Running /Applications/Android
>>>>>>>>>> > Studio.app/sdk/build-tools/android-4.2.2/dx
>>>>>>>>>> failed. See output
>>>>>>>>>>
>>>>>>>>>> * Try:
>>>>>>>>>> Run with --stacktrace option to get the stack trace. Run with
>>>>>>>>>> --info or --debug option to get more log output.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> From the error, it looks like it's trying to add in classes from
>>>>>>>>>> android-support-v4.jar into the classes.dex, which have already been
>>>>>>>>>> added
>>>>>>>>>> since they were included in the dependency .aar.
>>>>>>>>>>
>>>>>>>>>> Is the .aar of a library supposed to contain android-support-v4.
>>>>>>>>>> jar?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> 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/groups/opt_out.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> 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].
>>>>>>>>
>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> 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/l1gELhPSSkM/unsubscribe.
>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>> [email protected].
>>>>>>>
>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Best regards,
>>>>>> Roman Mazur
>>>>>>
>>>>>> Head of Android/Java Unit at Stanfy (http://stanfy.com.ua)
>>>>>> Skype: roman.mazur.f
>>>>>> LinkedIn: http://ua.linkedin.com/in/romanmazur
>>>>>> Twitter: http://twitter.com/roman_mazur
>>>>>>
>>>>>> --
>>>>>> 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/groups/opt_out.
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 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/l1gELhPSSkM/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> Best regards,
>> Roman Mazur
>>
>> Software engineer at Stanfy (http://stanfy.com.ua)
>> Skype: roman.mazur.f
>> LinkedIn: http://ua.linkedin.com/in/romanmazur
>> Twitter: http://twitter.com/roman_mazur
>>
>
--
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.