Java GCM服务器端运行时错误(NoClassDefFoundError:消息$Builder)
这是GCM通知的服务器端代码,我已经通过添加GCM-server.jar在ubuntu上使用命令行成功地构建了它,但是在运行时它崩溃了。我已经在类路径中添加了jarJava GCM服务器端运行时错误(NoClassDefFoundError:消息$Builder),java,google-cloud-messaging,Java,Google Cloud Messaging,这是GCM通知的服务器端代码,我已经通过添加GCM-server.jar在ubuntu上使用命令行成功地构建了它,但是在运行时它崩溃了。我已经在类路径中添加了jar Exception at run time : Exception in thread "main" java.lang.NoClassDefFoundError: com/google/android /gcm/server/Message$Builder at geo.sendNotification.se
Exception at run time :
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/android /gcm/server/Message$Builder
at geo.sendNotification.sendNow(sendNotification.java:30)
at geo.geosense.main(geosense.java:27)
Caused by: java.lang.ClassNotFoundException: com.google.android.gcm.server.Message$Builder
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
..
NoClassDefFoundError
表示应用程序无法在应用程序文件夹中找到文件的位置。建议将所有库文件和jar文件保存在项目的libs
文件夹中
确保已将gcm.jar文件放在libs
文件夹中,而不是lib
文件夹中
要做到这一点,请转到项目属性
排序并导出
,然后在已添加的jar文件上打勾
这里有一个相关的SO票证,它讨论了
NoClassDefFoundError
:我正在使用命令行在linux上构建应用程序。所有jar都在lib文件夹中。我也重命名为libs,但没有访问权限。应用程序成功构建,但出现NoClassDefFoundError异常
import org.json.simple.*;
import java.util.*;
import com.google.android.gcm.server.Message.Builder;
import com.google.android.gcm.server.Message;
import com.google.android.gcm.server.Sender;
import com.google.android.gcm.server.Result;
import com.google.android.gcm.server.MulticastResult;
public class sendNotification {
Sender sender = null;
public void sendNotification () // function to send message
{
Sender sender = new Sender("XYZ"); // api key
}
public void sendNow(String deviceID, String msg, String param)
{
Message message = new Message.Builder()
.addData("message", msg)
.addData("parameter one", param)
.build();
try{
Result result = sender.send(message, deviceID, 1);
}
catch ( Exception e )
{
e.printStackTrace();
}
}}
____________________________________________________________________________