【问题标题】:GWT compilation fails after upgrading sdk from gwt2.5.1 to gwt2.6.1将 sdk 从 gwt2.5.1 升级到 gwt2.6.1 后 GWT 编译失败
【发布时间】:2014-08-28 11:27:01
【问题描述】:

我正在使用 gwt 和 mgwt 开发移动应用程序。目前我正在使用 gwt2.5.1 和 mgwt1.1.2,我想将我的 gwt sdk 升级到 gwt2.6.1。在这个过程中,我在项目编译时遇到错误。这是错误描述...

[ERROR] Unexpected internal compiler error
java.lang.NoSuchMethodError: com.google.gwt.thirdparty.guava.common.io.Files.hash(Ljava/io/File;Lcom/google/gwt/thirdparty/guava/common/hash/HashFunction;)Lcom/google/gwt/thirdparty/guava/common/hash/HashCode;
 at com.google.gwt.dev.javac.PersistentUnitCache.computePersistentCacheFilenamePrefix(PersistentUnitCache.java:470)
 at com.google.gwt.dev.javac.PersistentUnitCache.<clinit>(PersistentUnitCache.java:114)
 at com.google.gwt.dev.javac.UnitCacheFactory.get(UnitCacheFactory.java:59)
 at com.google.gwt.dev.javac.CompilationStateBuilder.init(CompilationStateBuilder.java:449)
 at com.google.gwt.dev.Compiler.run(Compiler.java:151)
 at com.google.gwt.dev.Compiler.run(Compiler.java:132)
 at com.google.gwt.dev.Compiler$1.run(Compiler.java:99)
 at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55)
 at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50)
 at com.google.gwt.dev.Compiler.main(Compiler.java:106)

我从这里提取了最新的 gwt sdk。 http://www.gwtproject.org/versions.html 我检查了 gwt-dev.jar 和 gwt-user.jar ,两者都来自 gwt2.6.1 库。 我尝试将 guava-gwt.jar 和 guava-r09.jar 放在我的类路径中。但还是一样。我不知道这个错误的根本原因。请帮助我。

谢谢,

阿伦库马尔

【问题讨论】:

    标签: gwt sdk guava mgwt


    【解决方案1】:
    1. 在您的代码中找到com.google.gwt.thirdparty.guava import 并将其删除。将其替换为从最新的 guava 文件中导入。

    2. 始终使用latest version。目前,它是 guava 的第 18 个版本。

    【讨论】:

      【解决方案2】:

      这在您更改 gwt 版本并跳过替换 gwt servlet jar 时到达, 在我的情况下,我从 2.5.1 升级到 2.7.0,我忘记替换 WEB-INF/lib 中的旧 jar 文件(gwt-servlet.jar 和 gwt-servlet-dep.jar),你必须替换那些jar 然后又像旧版本一样使用新版本

      【讨论】:

      • 这至少解决了我的问题。我没有更新所有 gwt-*.jar 文件,只更新了 servlet。
      【解决方案3】:

      更改 GWT 版本时需要清理单元缓存。默认情况下,它是您的 war 文件夹旁边的 .gwt-unitcache 文件夹(可配置 通过 系统属性,或取决于您的构建工具:例如,gwt-maven-plugin 具有配置持久单元缓存目录)

      【讨论】:

      • 我在我的项目中找不到 .gwt-unitcache 文件夹。我在哪里可以看到它。我正在使用日食
      • 只是搜索。它应该直接在您的项目输出文件夹(目标/bin)中,如您的 Eclipse 项目属性中所定义...
      猜你喜欢
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多