¿Cómo excluir archivos R * .class producido por una acumulación Proguard
Pregunta
Soy un paso de hacer el método descrito aquí: Orientación de Android con Scala 2,8 Troncal construye
trabajo con un solo proyecto (vs un proyecto para Scala y uno para androide).
Me he encontrado con un problema. El uso de este archivo de entrada (argumentos a) 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 se puede construir, ya que piensa que está duplicado de la clase I (está en scandroid y también los archivos de la R * .class). ¿Cómo puedo modificar los argumentos anteriores Proguard para excluir archivos del R * .class del scandroid.jar por lo que el convertidor de Dalvik es feliz? Edit: Debo señalar que he intentado añadir; bin / org / Jeb / R.class; etc ... para el argumento -libraryjars, y que al parecer sólo para hacer que se quejan de las clases duplicadas, y, además, Proguard decidió excluir mis archivos de clase Scala también.
Solución
filtro de archivos ** / * R.java en otras palabras, este gravamen fuerzas Proguard para mantener todos los archivos excepto los archivos java R.java en la ofuscación
Otros consejos
Yo uso esta opción. Puede encontrar referencia desde el enlace de abajo y encuentre "Una completa aplicación para Android". http://proguard.sourceforge.net/index.html#/manual/examples.html
-keepclassmembers class **.R$* {
public static <fields>;
}