1

Proguard を使用して Multiverse STM (0.6.2) に依存する Scala コードを最適化しようとしています。STM を akka と組み合わせて使用​​しています。そうしようとすると、次のエラーが表示されます。

Unexpected error while inlining subroutines:
    Class       = [org/multiverse/transactional/refs/BasicRef]
    Method      = [<init>()V]
    Exception   = [java.lang.ArrayIndexOutOfBoundsException] (-1)

次のフラグを使用して最適化しています。

-forceprocessing

-libraryjars ${java.home}/lib/rt.jar
-injars      ${jar.name}
-outjars     ${jar.opt.name}

-dontobfuscate

-dontnote
-dontwarn
-ignorewarnings
-keepattributes

-keepclasseswithmembers public class * {
    public static void main(java.lang.String[]);
}

この問題の回避策を知っていますか (明白な -dontoptimize 以外に)?

前もって感謝します!

4

1 に答える 1

0

この同じ問題を修正しようとしてプロガードでさらに多くの時間を失った後、one-jar ( https://github.com/retronym/sbt-onejar ) に切り替えて、初めて機能しました。プロガードから必要なもの(縮小、バイトコードの難読化)がない限り、1つのjarを使用することをお勧めします。

プロガードを構成する必要があるときはいつでも、私は戦いに巻き込まれます。多くの場合、sbt を構成するときに、自分自身が戦闘に巻き込まれていることに気付きます。それらをまとめると、トラブルのレシピです。

幸運を。-アンディ

于 2012-01-04T00:27:50.803 に答える