【问题标题】:java.lang.NoClassDefFoundError: com.google.android.gms.gcm.GoogleCloudMessagingjava.lang.NoClassDefFoundError: com.google.android.gms.gcm.GoogleCloudMessaging
【发布时间】:2013-12-09 15:20:20
【问题描述】:

我正在尝试为我的应用实现推送通知。我已经在 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 在运行时可用也请帮忙。

【问题讨论】:

    标签: noclassdeffounderror


    【解决方案1】:

    NoClassDefFoundError 指定类在编译时可用,但在运行时丢失。从命令行运行应用程序时,需要在系统类路径中添加依赖项。否则,您需要将 google-play-services.jar 和其他依赖项与您的代码一起打包,以便应用程序在运行时找到它。

    如果您仍然遇到问题,请参阅此 - http://javareferencegv.blogspot.com/2013/10/debugging-javalangnoclassdeffounderror.html

    【讨论】:

      【解决方案2】:

      转到配置构建路径 -> 订购和导出并选择(复选框)包(jar)。

      【讨论】:

        【解决方案3】:

        无论构建路径在 Eclipse 中包含什么,它都与应用程序无关。所有的罐子都必须添加到类路径中。 我会在构建后使用以下命令启动应用程序:

        java -cp google.jar;jarA.jar;jarB.jar;jarC.jar -jar application.jar
        

        在 -cp 选项后填写您使用的 jar 的分号分隔列表。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多