我在 Eclipse 中有一个 libgdx android 项目,我添加了 scala 和 AndroidProguardScala 特性。这工作得很好,但突然 eclipse 开始给我警告“在构建路径上发现了多个 Scala 库”。我仍然可以在设备上构建和安装该项目,但它会立即退出NoClassDefFoundError: scala.Tuple2$mcZZ$sp
,因此看起来根本不包含 Scala 库。
我的项目似乎在“Scala Library [2.10.1]”(作为“scala-library.jar”)和“Android Dependencies”(作为“scala_library.min.jar”)下都有Scala库,所以我猜Proguard 输出与原始库冲突,但我不知道为什么会发生这种情况或如何修复它。
在这一点上,我可以创建一个新项目并将源文件复制过来,但如果有人能对此有所了解,那就太好了。
编辑:经过一些实验,事实证明这个代码(来自一个特征的方法)似乎是导致问题的原因。
acckeys match {
case (true, false) => acceleration.set(0, accel).rotate(rotation)
case (false, true) => acceleration.set(0, -accel).rotate(rotation)
case _ => acceleration.set(0, 0)
}
(其中 acckeys 是一个返回 a 的函数tuple
并且acceleration
是一个向量)
多个库警告仍然存在,所以我想这与问题无关。幸运的是,我实际上不需要从项目的 android 版本中引用此代码,但了解此代码为何编译但无法运行仍然很有用。