Scala错误:类文件已损坏,常量池索引错误
我试图从Scala调用Selenium Java库。我正在使用ScalaIDE(Eclipse)和Scala2.10.2。是什么导致了这个编译器错误Scala错误:类文件已损坏,常量池索引错误,scala,scala-2.10,Scala,Scala 2.10,我试图从Scala调用Selenium Java库。我正在使用ScalaIDE(Eclipse)和Scala2.10.2。是什么导致了这个编译器错误 error while loading Function, class file '/Dev/selenium-2.35.0/libs/guava- 14.0.jar(com/google/common/base/Function.class)' is broken (class java.lang.RuntimeException/bad co
error while loading Function, class file '/Dev/selenium-2.35.0/libs/guava-
14.0.jar(com/google/common/base/Function.class)' is broken
(class java.lang.RuntimeException/bad constant pool index: 0 at pos: 479)
有时,我会通过包含更多JAR来修复损坏的类文件错误,
javac
不需要看到的JAR,但显然scalac
需要看到。但如果是这样的话,我不知道还能添加哪些罐子。找到了答案。这是由以下原因造成的:。当我添加jsr305 jar时,错误消失了。RobN的答案是正确的,但我认为我应该根据自己的经验写更长一点的答案。这与番石榴问题相关,并由RobN提及
我在尝试访问时遇到了同样的问题
com.google.common.io.BaseEncoding.base64()
Eclipse声称base64成员不存在,并且Gradle构建
生成问题中的错误:
[ant:scalac] error: error while loading BaseEncoding, class file
'.../guava-16.0.jar(com/google/common/io/BaseEncoding.class)' is broken
该错误是由中对某些批注的依赖性引起的。如中所述,Java编译器忽略
找不到对应类文件的注释,但找到了Scala编译器
需要对定义进行编译
显式添加可选的依赖项应该可以解决这个问题
在这种特殊情况下,具有以下可选依赖项,将下面的依赖项声明添加到项目中将解决此问题:
格拉德尔:
compile 'com.google.code.findbugs:jsr305:2.0.2'
马文:
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>2.0.2</version>
</dependency>
com.google.code.findbugs
jsr305
2.0.2
可能相关吗?我只是尝试了几个其他的jar文件——运气不好。似乎它们都是用Eclipse编译的。我会看看是否可以获得源代码并手动编译。我认为这与我5个月前的答案相同,尽管有关Scala的解释包含在链接中。@RobN是的。我花了不少时间在谷歌上搜索才到这里。我最初是在链接中找到这篇文章的。在知道了正确的关键词后,我再次搜索,发现了这个问题。我希望未来的探险家们能够对这些问题进行一点详细的阐述,并将其联系起来,从而更快地找到结果。我不确定这是否是一种继续下去的好方法,但是……在我的同等情况下,初始错误是:加载GoogleService时出错,类文件“../lib/gdata-core-1.0.jar(com/google/gdata/client/GoogleService.class)”被破坏了
。那要看番石榴了。不知何故,我无法使用sbt使用libraryDependencies+=“com.google.code.findbugs”%”jsr305“%”2.0.2“
重现解决方案,尽管我的类路径(/lib
)中已经有了这个jar。有什么想法吗?