构建GCM演示服务器应用程序出现问题

8
每当我尝试使用ant编译建立GCM演示服务器文档时,都会出现17个编译错误。看起来是缺少一些GCM库。我该如何解决这些问题?
 Errors:

  Buildfile: build.xml

init:

compile:
    [javac] Compiling 7 source files to /root/gcm/samples/gcm-demo-server/build/classes
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:18: package com.google.android.gcm.server does not exist
    [javac] import com.google.android.gcm.server.Constants;
    [javac]                                     ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:19: package com.google.android.gcm.server does not exist
    [javac] import com.google.android.gcm.server.Message;
    [javac]                                     ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:20: package com.google.android.gcm.server does not exist
    [javac] import com.google.android.gcm.server.MulticastResult;
    [javac]                                     ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:21: package com.google.android.gcm.server does not exist
    [javac] import com.google.android.gcm.server.Result;
    [javac]                                     ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:22: package com.google.android.gcm.server does not exist
    [javac] import com.google.android.gcm.server.Sender;
    [javac]                                     ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:46: cannot find symbol
    [javac] symbol  : class Sender
    [javac] location: class com.google.android.gcm.demo.server.SendAllMessagesServlet
    [javac]   private Sender sender;
    [javac]           ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:59: cannot find symbol
    [javac] symbol  : class Sender
    [javac] location: class com.google.android.gcm.demo.server.SendAllMessagesServlet
    [javac]   protected Sender newSender(ServletConfig config) {
    [javac]             ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:62: cannot find symbol
    [javac] symbol  : class Sender
    [javac] location: class com.google.android.gcm.demo.server.SendAllMessagesServlet
    [javac]     return new Sender(key);
    [javac]                ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:81: cannot find symbol
    [javac] symbol  : class Message
    [javac] location: class com.google.android.gcm.demo.server.SendAllMessagesServlet
    [javac]         Message message = new Message.Builder().build();
    [javac]         ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:81: package Message does not exist
    [javac]         Message message = new Message.Builder().build();
    [javac]                                      ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:82: cannot find symbol
    [javac] symbol  : class Result
    [javac] location: class com.google.android.gcm.demo.server.SendAllMessagesServlet
    [javac]         Result result = sender.send(message, registrationId, 5);
    [javac]         ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:115: cannot find symbol
    [javac] symbol: class Message
    [javac]         Message message = new Message.Builder().build();
    [javac]         ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:115: package Message does not exist
    [javac]         Message message = new Message.Builder().build();
    [javac]                                      ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:116: cannot find symbol
    [javac] symbol: class MulticastResult
    [javac]         MulticastResult multicastResult;
    [javac]         ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:123: cannot find symbol
    [javac] symbol: class Result
    [javac]         List<Result> results = multicastResult.getResults();
    [javac]              ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:127: cannot find symbol
    [javac] symbol: class Result
    [javac]           Result result = results.get(i);
    [javac]           ^
    [javac] /root/gcm/samples/gcm-demo-server/src/com/google/android/gcm/demo/server/SendAllMessagesServlet.java:140: cannot find symbol
    [javac] symbol: variable Constants
    [javac]             if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
    [javac]                              ^
    [javac] 17 errors

BUILD FAILED
1个回答

10

我本人从未运行过这个项目,但看起来它缺少extras\google\gcm\gcm-server\dist\gcm-server.jar及其依赖库。请将它们添加到该项目下的libs文件夹中,然后再尝试一次。


1
噢,好吧,我想我解决了它。感谢提供的信息。 我的做法是将gcm-server中的build文件夹复制到gcm-demo-server中并覆盖原有的文件夹。然后运行ant编译,没有出现错误。 - Bhavyanshu
14
请参考 README 文件中的说明:“ant -f ../../gcm-server/build.xml update-demo”。我不会提供解释或其他信息。 - Big_Boulard
6
Google的文档应该更新。遵循他们的指示的每个人都会得到这些编译器错误。 - User

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接