2010-05-21 10 views
7

Soy un paso de hacer el método descrito aquí: Targeting Android with Scala 2.8 Trunk buildsCómo excluir archivos R * .class producido por una acumulación Proguard

trabajo con un solo proyecto (vs un proyecto de Scala y uno para android).

He encontrado un problema. El uso de este archivo de entrada (argumentos) 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 se genera correctamente scandroid.jar, sin embargo, parece haber incluido las clases R generados que el constructor de recursos androide genera y compila. En este caso, se encuentran en bin/org/jeb/R * .class. Esto no es lo que quiero. El convertidor de dalvik de Android no puede compilar porque cree que hay un duplicado de la clase R (está en scandroid y también en los archivos R * .class). ¿Cómo puedo modificar los argumentos proguard anteriores para excluir los archivos R * .class de scandroid.jar para que el convertidor dalvik sea feliz? Editar: Debo señalar que traté de agregar; bin/org/jeb/R.class; etc ... al argumento -libraryjars, y que solo parecía hacer que se quejara de las clases duplicadas, y además proguard decidió excluir mis archivos de la clase scala también.

+1

no sé de la parte superior de mi cabeza para Proguard - es posible que trate de hacer en los foros Proguard en http://sourceforge.net/projects/proguard/forums/forum/182456. Es posible que pueda resolverlo de otra manera. ¿Hay alguna manera de hacer que Eclipse coloque los archivos * .class generados por el material R en un directorio diferente (algo que no sea bin)? –

+0

Tuve una pregunta similar, la obtuve respondida [aquí] (http://stackoverflow.com/questions/11325087/what-are-the-semantics-of-proguardinjars-in-sbt-android-plugin). – Lopina

Respuesta

4

filtro de archivos **/* R.java en otras palabras, esta Proguard fuerzas de derecho de retención para mantener todos los archivos excepto los archivos java R.java en la ofuscación

Cuestiones relacionadas