我正在尝试为我的应用实施推送通知。我已经在eclipse中设置了项目,在java buildpath中添加了google-play-services.jar并按顺序检查并导出。所以我的应用程序工作时非常正常,当我用gcm进行注册并从gcm获取注册ID但是当我尝试从命令行构建我的应用程序时,我收到以下错误
java.lang.NoClassDefFoundError:com.google.android.gms.gcm.GoogleCloudMessaging
我在类路径中添加了google-play-services.jar,因此代码编译没有任何问题,但在运行时我得到了上述异常。看起来像它无法在运行时找到jar。如何在运行时提供jar也请帮助。
答案 0 :(得分:0)
NoClassDefFoundError指定一个类在编译期间可用,但在运行时期间丢失。从命令行运行应用程序时,需要在系统类路径中添加依赖项。或者你需要将google-play-services.jar和其他依赖项与代码一起打包,以便应用程序在运行时找到它。
如果您仍然遇到问题,请参阅此 - http://javareferencegv.blogspot.com/2013/10/debugging-javalangnoclassdeffounderror.html
答案 1 :(得分:0)
转到配置构建路径 - >订购和导出并选择(复选框)包(罐子)。
答案 2 :(得分:0)
无论构建路径在eclipse中包含什么,它都与应用程序无关。所有的jar都必须添加到类路径中。 我会使用以下命令在build之后启动应用程序:
java -cp google.jar;jarA.jar;jarB.jar;jarC.jar -jar application.jar
在-cp选项之后填写您使用的以分号分隔的jar列表。