I suppose it's a bug in publishing androidlibs (plugin bug) -- appcompat's generated R should not be in the packaged artifact.
On Mon, Sep 8, 2014 at 5:46 PM, Srinivas <[email protected]> wrote: > Yes "com.myapps.libraries.android" %% "androidlibs" % "0.1-SNAPSHOT" is > dependent on compact library that is why I have not included "compact" > library explicitly in my project > > On Monday, September 8, 2014 11:24:01 PM UTC+5:30, pfn wrote: >> >> my guess, "com.myapps.libraries.android" %% "androidlibs" % >> "0.1-SNAPSHOT" >> >> ^^ that library depends on appcompat? >> >> On Mon, Sep 8, 2014 at 9:56 AM, Srinivas <[email protected]> wrote: >> >>> I am using pfn/android-sdk-plugin >>> <https://github.com/pfn/android-sdk-plugin> in a project with the >>> following build.sbt: >>> >>> import android.Keys._ >>> >>> android.Plugin.androidBuild >>> >>> platformTarget in Android := "android-19" >>> >>> name := "LDApp" >>> >>> organization := "com.myapps.app.android.ldapp" >>> >>> version := "1.0" >>> >>> scalaVersion := "2.10.4" >>> >>> useProguard in Android := true >>> >>> libraryDependencies ++= Seq ( >>> "com.myapps.libraries.android" %% "androidlibs" % "0.1-SNAPSHOT") >>> >>> proguardCache in Android ++= Seq ( >>> ProguardCache("androidlibs") % "com.myapps.libraries.android" %% >>> "androidlibs", >>> ProguardCache("appcompat-v7") % "com.android.support" % "appcompat-v7") >>> >>> >>> Whenever I try to sbt android:run, I am getting error as Duplicate entry, >>> appcompact-v7 is been included myapps.libraries.android, that is why I >>> have not included explicitly in this application. Following is the error log >>> >>> Copying resources from program jar >>> [/Users/android/tmp/tmp/projects/LDApp/bin/classes.jar] (filtered) >>> java.io.IOException: Can't write >>> [/Users/android/tmp/tmp/projects/LDApp/bin/classes.proguard.jar] (Can't >>> read >>> [/Users/android/tmp/tmp/projects/LDApp/bin/classes.jar(;;;;;;!META-INF/**,!rootdoc.txt)] >>> (Duplicate zip entry >>> [classes.jar:android/support/v7/appcompat/R$styleable.class])) >>> at proguard.OutputWriter.writeOutput(OutputWriter.java:264) >>> at proguard.OutputWriter.execute(OutputWriter.java:160) >>> at proguard.ProGuard.writeOutput(ProGuard.java:372) >>> at proguard.ProGuard.execute(ProGuard.java:153) >>> at android.Tasks$$anonfun$77.apply(tasks.scala:1197) >>> at android.Tasks$$anonfun$77.apply(tasks.scala:1171) >>> at scala.Function10$$anonfun$tupled$1.apply(Function10.scala:35) >>> at scala.Function10$$anonfun$tupled$1.apply(Function10.scala:34) >>> at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) >>> at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42) >>> at sbt.std.Transform$$anon$4.work(System.scala:64) >>> at >>> sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) >>> at >>> sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) >>> at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) >>> at sbt.Execute.work(Execute.scala:244) >>> at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) >>> at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) >>> at >>> sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160) >>> at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) >>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) >>> at java.util.concurrent.FutureTask.run(FutureTask.java:166) >>> at >>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) >>> at java.util.concurrent.FutureTask.run(FutureTask.java:166) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:724) >>> Caused by: java.io.IOException: Can't read >>> [/Users/android/tmp/tmp/projects/LDApp/bin/classes.jar(;;;;;;!META-INF/**,!rootdoc.txt)] >>> (Duplicate zip entry >>> [classes.jar:android/support/v7/appcompat/R$styleable.class]) >>> at proguard.InputReader.readInput(InputReader.java:232) >>> at proguard.InputReader.readInput(InputReader.java:202) >>> at proguard.OutputWriter.writeOutput(OutputWriter.java:253) >>> at proguard.OutputWriter.execute(OutputWriter.java:160) >>> at proguard.ProGuard.writeOutput(ProGuard.java:372) >>> at proguard.ProGuard.execute(ProGuard.java:153) >>> at android.Tasks$$anonfun$77.apply(tasks.scala:1197) >>> at android.Tasks$$anonfun$77.apply(tasks.scala:1171) >>> at scala.Function10$$anonfun$tupled$1.apply(Function10.scala:35) >>> at scala.Function10$$anonfun$tupled$1.apply(Function10.scala:34) >>> at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) >>> at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42) >>> at sbt.std.Transform$$anon$4.work(System.scala:64) >>> at >>> sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) >>> at >>> sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) >>> at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) >>> at sbt.Execute.work(Execute.scala:244) >>> at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) >>> at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) >>> at >>> sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160) >>> at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) >>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) >>> at java.util.concurrent.FutureTask.run(FutureTask.java:166) >>> at >>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) >>> at java.util.concurrent.FutureTask.run(FutureTask.java:166) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:724) >>> Caused by: java.io.IOException: Duplicate zip entry >>> [classes.jar:android/support/v7/appcompat/R$styleable.class] >>> at proguard.io.JarWriter.getOutputStream(JarWriter.java:139) >>> at >>> proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:105) >>> at >>> proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:105) >>> at >>> proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:92) >>> at proguard.io.ClassRewriter.read(ClassRewriter.java:68) >>> at >>> proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87) >>> at >>> proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87) >>> at >>> proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87) >>> at proguard.io.JarReader.read(JarReader.java:65) >>> at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65) >>> at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53) >>> at proguard.InputReader.readInput(InputReader.java:228) >>> at proguard.InputReader.readInput(InputReader.java:202) >>> at proguard.OutputWriter.writeOutput(OutputWriter.java:253) >>> at proguard.OutputWriter.execute(OutputWriter.java:160) >>> at proguard.ProGuard.writeOutput(ProGuard.java:372) >>> at proguard.ProGuard.execute(ProGuard.java:153) >>> at android.Tasks$$anonfun$77.apply(tasks.scala:1197) >>> at android.Tasks$$anonfun$77.apply(tasks.scala:1171) >>> at scala.Function10$$anonfun$tupled$1.apply(Function10.scala:35) >>> at scala.Function10$$anonfun$tupled$1.apply(Function10.scala:34) >>> at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) >>> at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42) >>> at sbt.std.Transform$$anon$4.work(System.scala:64) >>> at >>> sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) >>> at >>> sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) >>> at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) >>> at sbt.Execute.work(Execute.scala:244) >>> at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) >>> at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) >>> at >>> sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160) >>> at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) >>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) >>> at java.util.concurrent.FutureTask.run(FutureTask.java:166) >>> at >>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) >>> at java.util.concurrent.FutureTask.run(FutureTask.java:166) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:724) >>> [error] (android:proguard) java.io.IOException: Can't write >>> [/Users/android/tmp/tmp/projects/LDApp/bin/classes.proguard.jar] (Can't >>> read >>> [/Users/android/tmp/tmp/projects/LDApp/bin/classes.jar(;;;;;;!META-INF/**,!rootdoc.txt)] >>> (Duplicate zip entry >>> [classes.jar:android/support/v7/appcompat/R$styleable.class])) >>> [error] Total time: 34 s, completed 5 Sep, 2014 6:15:10 PM >>> >>> >>> R$styleable.class is been generated as part of application also and is part >>> of compact-v7 library as well, how to resolve this issue, even though >>> similar issues seen around those solutions have not helped. >>> >>> -- >>> 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. > -- 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.
