2010-05-21 55 views
7

排除R * .class文件我是一個步驟就可以使這裏所描述的方法遠: Targeting Android with Scala 2.8 Trunk builds如何從ProGuard的構建

與單個項目工作(VS一個項目Scala和一個用於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參數來從scandroid.jar中排除R * .class文件,這樣dalvik轉換器很快樂? 編輯:我應該注意到,我試圖添加; bin/org/jeb/R.class;等...到-libraryjars參數,並且似乎只會導致它抱怨重複的類,此外proguard決定也排除我的Scala類文件。

+1

我不知道把我的頭爲proguard的頂部 - 你可以試着問上ProGuard的論壇在http://sourceforge.net/projects/proguard/forums/forum/182456。 你也許能夠以另一種方式解決這個問題。有沒有辦法讓Eclipse把R的東西生成的* .class文件放到不同的目錄(bin以外的東西)? – 2010-05-21 23:43:08

+0

我有一個類似的問題,得到它回答[這裏](http://stackoverflow.com/questions/11325087/what-are-the-semantics-of-proguardinjars-in-sbt-android-plugin)。 – Lopina 2012-07-13 09:07:15

回答

4

文件過濾器!**/* R.java換句話說這個留置權力量Proguard的保存所有java文件除了R.java文件混淆