You can remove transititve dependencies that cause duplicated classes.

Am Montag, 6. Oktober 2014 12:07:58 UTC+2 schrieb [email protected]:
>
> Apologies, I wasn't clear enough lead to errors, we had a small chat about 
> this on IRC,
>
> [error] (android:proguard) java.io.IOException: Can't write 
> [/Users/_/Backup/Experiments/Test/bin/classes.proguard.jar] (Can't read 
> [/Users/_/.ivy2/cache/org.sonatype.sisu/sisu-guava/jars/sisu-guava-0.9.9.jar(;;;;;;!META-INF/**,!rootdoc.txt)]
>  
> (Duplicate zip entry 
> [sisu-guava-0.9.9.jar:com/google/common/base/Ascii.class]))
>
> Yes it's a proguard error, but something proguard doesn't give an option 
> to switch off, I understand that the lib i'm including probably shouldn't 
> use sisu-guava, i've used both excludes on the problematic transitive libs 
> (next one is log4j) and successfully build.
> but results in runtime error.
>
> Disabling proguard results in alot of errors such as;
> warn] Exception in thread "pool-1-thread-640" 
> java.lang.IllegalArgumentException: already added: 
> Lcom/google/common/collect/Multisets$1$1;
> [warn]     at 
> com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122)
> [warn]     at com.android.dx.dex.file.DexFile.add(DexFile.java:161)
> [warn]     at com.android.dx.command.dexer.Main.processClass(Main.java:685)
> [warn]     at 
> com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
> [warn]     at com.android.dx.command.dexer.Main.access$600(Main.java:78)
> [warn]     at 
> com.android.dx.command.dexer.Main$ParallelProcessor.run(Main.java:1550)
> [warn]     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> [warn]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [warn]     at java.lang.Thread.run(Thread.java:724)
>
> I see there is a possibly related, closed issue here;
> https://github.com/pfn/android-sdk-plugin/issues/60
>
> but I couldn't find a command to cache duplicate classes?
>
>
>
> On Monday, October 6, 2014 2:02:42 AM UTC+2, pfn wrote:
>>
>> Proguard notes are not errors
>>
>> --
>> Sent from my phone
>> On Oct 5, 2014 2:26 PM, <[email protected]> wrote:
>>
>>> I'm struggling abit with various dependencies a single java lib 
>>> requires, added from a 3rd party maven repo.
>>>
>>> For various classes - I get alot of;
>>> Note: duplicate definition of program class 
>>> [com.google.common.annotations.Beta]
>>> Note: duplicate definition of program class 
>>> [com.google.common.annotations.GwtCompatible]
>>>
>>> First I tried apkbuildExcludes in Android, for files like 
>>> META-INF/DEPENDENCIES
>>>
>>> I've tried exclude() in my libraryDependencies to filter out the libs 
>>> that aren't required
>>>
>>> if I add;
>>> conflictManager := ConflictManager.strict
>>>
>>> On android:package-release, I immediately get;
>>>
>>> [info] Resolving org.codehaus.plexus#plexus-compiler-api;2.2 ...
>>> [error] org.codehaus.plexus#plexus-utils;3.0.8 (needed by 
>>> [org.codehaus.plexus#plexus-compiler-api;2.2]) conflicts with 
>>> org.codehaus.plexus#plexus-utils;2.0.6 (needed by [])
>>> [trace] Stack trace suppressed: run last *:update for the full output.
>>> [error] (*:update) 
>>> org.apache.ivy.plugins.conflict.StrictConflictException: 
>>> org.codehaus.plexus#plexus-utils;3.0.8 (needed by 
>>> [org.codehaus.plexus#plexus-compiler-api;2.2]) conflicts with 
>>> org.codehaus.plexus#plexus-utils;2.0.6 (needed by [])
>>>
>>> I saw sbt-assembly plugin and was wondering if I could use a 
>>> MergeStrategy here, somehow?
>>>
>>> Any ideas how I can resolve this?
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "scala-on-android" 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.
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"scala-on-android" 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