2010-05-21 3 views
7

Я один шаг от решений метод, описанный здесь: Targeting Android with Scala 2.8 Trunk buildsКак исключить R * .class файлы из Proguard сборки

работа с одного проекта (против одного проекта для Скале и один для Android).

У меня возникла проблема. Используя этот входной файл (аргументы в) 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 успешно строит scandroid.jar, однако, как представляется, включали сгенерированные классы R, что андроид строитель ресурс генерирует и компилирует. В этом случае они расположены в bin/org/jeb/R * .class. Это не то, что я хочу. Конвертер android dalvik не может построить, потому что он считает, что существует дубликат класса R (он находится в scandroid, а также файлы R * .class). Как изменить приведенные выше аргументы proguard, чтобы исключить файлы R * .class из файла scandroid.jar, чтобы конвертер dalvik был счастлив? Редактировать: Я должен отметить, что я попытался добавить: bin/org/jeb/R.class и т. Д. В аргумент -libraryjars, и это только заставляло его жаловаться на дублирующие классы, и, кроме того, proguard решил исключить также файлы класса scala.

+1

Я не знаю, с верхней части моей головы для ProGuard - вы можете попробовать просить на Proguard форумах на http://sourceforge.net/projects/proguard/forums/forum/182456. Возможно, вы сможете решить эту проблему другим способом. Есть ли способ заставить Eclipse помещать файлы * .class, сгенерированные материалом R, в другой каталог (что-то другое, кроме bin)? –

+0

У меня был подобный вопрос, он получил ответ [здесь] (http://stackoverflow.com/questions/11325087/what-are-the-semantics-of-proguardinjars-in-sbt-android-plugin). – Lopina

ответ

4

файл фильтр! **/* R.java других слов это залог сила Proguard, чтобы сохранить все файлы, кроме Java R.java файлов в запутывания