2012-03-15 58 views
3

我无法让番石榴与GWT一起工作。我正在使用Eclipse,我已将guava-11.0.2.jarguava-gwt-11.0.2.jar都添加到我的课程路径中,继承了我的gwt.xml文件中的模块com.google.common.collect.Collect,但仍然无法使其工作。让番石榴在GWT上工作

它编译,但是当我运行它时出现了很多错误。其中许多指无法解析的注释javax.annotation.Nullable

我尝试将jsr305.jar添加到我的课程路径中,但没有任何结果。

也有一些错误出现,这取决于番石榴的版本包括我(试着用11.0.2,11.0.1,10.0.1),如果我包括或不这些错误的jsr305.jar

是一些例子:

  • 类型PersonActivity.PersonFilterPredicate必须实现继承抽象方法Predicate<PersonRoleProxy>.apply(Object)
  • 在类型Ordering<T>方法compare(T, T)不适用于参数(Object, Object)

这很奇怪,因为代码编译和这些类型的错误应该在编译时出现。

回答

4

我们一直尴尬地无法找出@Nullable问题的解决方案,我们认为这是一个GWT问题。你可以沿着http://code.google.com/p/guava-libraries/issues/detail?id=776我们试图从GWT团队那里得到帮助,但最近对于我们感兴趣的编译器工作的人来说,事情一直很疯狂。看起来你可以工作通过从您的GWT编译参数中删除-strict解决问题,但当然这是一个糟糕的解决方法。

其他用户的经验表明,您看到的奇怪的其他错误与@Nullable问题有关,尽管我还没有看到确切的确认。您可能还会确认,您所有的进口都是com.google.common.*而不是com.google.gwt.thirdparty.guava.common.*

对不起所有的麻烦。这是目前我们身边少数几个主要的荆棘之一。

1

以下的解决方法适用于GWT 2.4.0与

  • 番石榴14.0 RC1和
  • jsr305-1.3.9.jar

创建一个名为Annotation.gwt.xml与文件以下内容:

<module> 
    <source path=""/> 
</module> 

在存档jsr305-1.3.9.jar将此文件复制到子可怕ctory javax/annotation。

以下行添加到您的应用程序.gwt.xml文件:

<inherits name='javax.annotation.Annotation'/>