美好的一天给大家!我试图创建一个基于谷歌教程示例“GWT开发与活动和地方”文章的项目。我创建了几个地方,并在其中每个Tokenizer类。当我尝试编译项目时,我收到以下错误:无法创建PlaceTokenizer类
Found type 'com.calendarmvp.client.mvp.AppPlaceHistoryMapper'
[ERROR] Annotation error: cannot resolve com.calendarmvp.client.place.GreetingsPlace$Tokenizer
java.lang.ClassNotFoundException: com.calendarmvp.client.place.GreetingsPlace$Tokenizer
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotationValue(TypeOracleMediator.java:750)
at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotationValue(TypeOracleMediator.java:689)
at com.google.gwt.dev.javac.TypeOracleMediator.createAnnotation(TypeOracleMediator.java:498)
at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotation(TypeOracleMediator.java:648)
at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotations(TypeOracleMediator.java:663)
at com.google.gwt.dev.javac.TypeOracleMediator.resolveClass(TypeOracleMediator.java:809)
at com.google.gwt.dev.javac.TypeOracleMediator.addNewTypes(TypeOracleMediator.java:439)
at com.google.gwt.dev.javac.TypeOracleMediatorFromSource.addNewUnits(TypeOracleMediatorFromSource.java:52)
at com.google.gwt.dev.javac.CompilationState.assimilateUnits(CompilationState.java:164)
at com.google.gwt.dev.javac.CompilationState.<init>(CompilationState.java:82)
at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:450)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:370)
at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:360)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:252)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:233)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
at com.google.gwt.dev.Compiler.run(Compiler.java:232)
at com.google.gwt.dev.Compiler.run(Compiler.java:198)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:170)
at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)
at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82)
at com.google.gwt.dev.Compiler.main(Compiler.java:177)
[ERROR] Annotation error: expected class java.lang.Class, got null
我GreetingsPlace类是这样的:
public class GreetingsPlace extends Place {
private String GreetingsPlaceName;
public GreetingsPlace(String place) {
this.GreetingsPlaceName = place;
}
public String getGreetingsPlaceName() {
return GreetingsPlaceName;
}
public static class Tokenizer implements PlaceTokenizer<GreetingsPlace> {
@Override
public String getToken(GreetingsPlace place) {
return place.getGreetingsPlaceName();
}
@Override
public GreetingsPlace getPlace(String token) {
return new GreetingsPlace(token);
}
}
}
AppPlaceHistoryMapper是这样的:
@WithTokenizers({
HelloPlace.Tokenizer.class,
GoodbyePlace.Tokenizer.class,
GreetingsPlace.Tokenizer.class,
ManagerPlace.Tokenizer.class,
UserPlace.Tokenizer.class
})
public interface AppPlaceHistoryMapper extends PlaceHistoryMapper {
}
也许我失去了一些东西。 .. 谁能帮我?提前致谢!
你用'javac'编译代码了吗?看起来像这[一个]相同的问题(http://groups.google.com/group/google-web-toolkit/browse_thread/thread/ad60dd83580f03f1)。 – foch 2012-02-17 21:03:15
非常感谢!我忘了在GWT编译之前重建项目,在Eclipse中关闭自动重建。 – ferbolg 2012-02-19 15:21:43