ここで説明する方法を作成するまであと 1 歩です: Scala 2.8 トランク ビルドを使用して Android をターゲットにする
単一のプロジェクトで作業します (vs scala 用の 1 つのプロジェクトと android 用の 1 つのプロジェクト)。
問題が発生しました。この入力ファイルを使用して (引数) 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 を正常にビルドしますが、android リソース ビルダーが生成およびコンパイルする生成された R クラスが含まれているようです。この場合、それらは bin/org/jeb/R*.class にあります。これは私が望むものではありません。android dalvik コンバーターは、R クラスの重複があると見なされるため、ビルドできません (scandroid と R*.class ファイルにあります)。上記の proguard 引数を変更して scandroid.jar から R*.class ファイルを除外し、dalvik コンバーターが満足するようにするにはどうすればよいですか? 編集: ;bin/org/jeb/R.class;etc... を -libraryjars 引数に追加しようとしたことに注意してください.私のscalaクラスファイルも。