2010-05-21 4 views
7

Sono ad un passo dal fare il metodo descritto qui: Targeting Android with Scala 2.8 Trunk buildsCome escludere i file R * .class da un accumulo Proguard

lavoro con un unico progetto (vs un progetto per la Scala e una per Android).

Mi sono imbattuto in un problema. L'utilizzo di questo file di input (argomenti) Proguard:

-injars bin;lib/scala-library.jar(!META-INF/MANIFEST.MF,!library.properties) 

-outjar lib/scandroid.jar 

-libraryjars lib/android.jar 

-dontwarn 
-dontoptimize 
-dontobfuscate 
-dontskipnonpubliclibraryclasses 
-dontskipnonpubliclibraryclassmembers 

-keepattributes Exceptions,InnerClasses,Signature,Deprecated, 
       SourceFile,LineNumberTable,*Annotation*,EnclosingMethod 
-keep public class org.scala.jeb.** { public protected *; } 
-keep public class org.xml.sax.EntityResolver { public protected *; } 

Proguard costruisce con successo scandroid.jar, tuttavia sembra aver incluso le classi R generate che il costruttore risorsa Android genera e compila. In questo caso, si trovano in bin/org/jeb/R * .class. Questo non è quello che voglio. Il convertitore android dalvik non può essere costruito perché pensa che esista un duplicato della classe R (è in scandroide e anche nei file R * .class). Come posso modificare gli argomenti proguard sopra per escludere i file R * .class dallo scandroid.jar in modo che il convertitore dalvik sia felice? Edit: Devo notare che ho provato ad aggiungere, bin/org/jeb/R.class, ecc ... all'argomento -libraryjars, e che sembrava solo causarlo lamentarsi di classi duplicate, e in aggiunta proguard ha deciso di escludere anche i miei file di classe scala.

+1

Non so fuori dalla parte superiore della mia testa per Proguard - si potrebbe provare a chiedere sul forum di Proguard a http://sourceforge.net/projects/proguard/forums/forum/182456. Potresti riuscire a risolvere questo in un altro modo. C'è un modo per fare in modo che Eclipse metta i file * .class generati dalla roba R in una directory diversa (qualcosa di diverso da bin)? –

+0

Ho avuto una domanda simile, ho ottenuto risposta [qui] (http://stackoverflow.com/questions/11325087/what-are-the-semantics-of-proguardinjars-in-sbt-android-plugin). – Lopina

risposta

4

filtro di file! **/* R.java in altre parole questo le forze di pegno Proguard per mantenere tutti i file java, tranne i file R.java nel offuscamento