Android 未在服务中找到内部 Class

Android isn't finding an Inner Class in a Service

我从 here 克隆了一个 git 存储库并尝试 运行 它。当我尝试启动它时,出现 NoClassDef 异常。

java.lang.NoClassDefFoundError: com.tokudu.demo.PushService$MQTTConnection
    at com.tokudu.demo.PushService.connect(PushService.java:280)
    at com.tokudu.demo.PushService.start(PushService.java:242)
    at com.tokudu.demo.PushService.onStart(PushService.java:186)
    at android.app.Service.onStartCommand(Service.java:458)
    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2864)
    at android.app.ActivityThread.access00(ActivityThread.java:144)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1376)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5221)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

它使用了外部库,这可能是导致问题的原因吗? .PushService$MQTTConnection 实现了 class 中的内容。我没有 post 任何代码,因为链接的 GitHub 是我逐字使用的代码。我根本没有修改它(除了试图使内部 class public 而不是 private 没有解决任何问题。)

提前感谢您提供的任何帮助。

您必须安装 com.ibm.mqtt 软件包。试一试。

NoClassDefFoundError in Java comes when Java Virtual Machine is not able to find a particular class at runtime which was available during compile time.

尝试以下几件事:

右键单击您的项目 -> 构建路径 -> 配置构建路径 -> 排序和导出选项卡。

确保选中 "Android Private Libraries" 导出。

如果您在尝试上述操作后仍看到此错误,此 LINK 中还有一些提示可供您尝试。