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

在试图解决同样问题的 proguard 上浪费了更多时间之后,我切换到了 one-jar ( https://github.com/retronym/sbt-onejar ) 并且第一次使用它。我建议除非你需要从 proguard(收缩、字节码混淆)中得到特定的东西,否则只使用一个罐子。

每当我必须配置 proguard 时,我都会发现自己陷入了一场战斗。通常在配置 sbt 时,我也发现自己陷入了一场战斗。把它们放在一起,这是一个麻烦的秘诀。

祝你好运。-安迪

于 2012-01-04T00:27:50.803 回答