簡體   English   中英

如何解決“ java.lang.NoClassDefFoundError”?

[英]How to resolve “java.lang.NoClassDefFoundError”?

我收到一個錯誤。 這是日志:

04-01 22:04:41.010: I/dalvikvm(19541): Could not find method com.quickblox.module.chat.smack.SmackAndroid.init, referenced from method com.quickblox.videochatsample.ui.App.onCreate
04-01 22:04:41.010: W/dalvikvm(19541): VFY: unable to resolve static method 13789: Lcom/quickblox/module/chat/smack/SmackAndroid;.init (Landroid/content/Context;)Lcom/quickblox/module/chat/smack/SmackAndroid;
04-01 22:04:41.010: D/dalvikvm(19541): VFY: replacing opcode 0x71 at 0x0003
04-01 22:04:41.010: D/AndroidRuntime(19541): Shutting down VM
04-01 22:04:41.010: W/dalvikvm(19541): threadid=1: thread exiting with uncaught exception (group=0x40c11a68)
04-01 22:04:41.020: E/AndroidRuntime(19541): FATAL EXCEPTION: main
04-01 22:04:41.020: E/AndroidRuntime(19541): java.lang.NoClassDefFoundError: com.quickblox.module.chat.smack.SmackAndroid
04-01 22:04:41.020: E/AndroidRuntime(19541):    at com.quickblox.videochatsample.ui.App.onCreate(App.java:13)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:973)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3971)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.app.ActivityThread.access$1300(ActivityThread.java:128)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.os.Looper.loop(Looper.java:137)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.app.ActivityThread.main(ActivityThread.java:4517)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at java.lang.reflect.Method.invokeNative(Native Method)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at java.lang.reflect.Method.invoke(Method.java:511)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at dalvik.system.NativeStart.main(Native Method)  

碼:

package com.quickblox.videochatsample.ui;

import android.app.Application;

import com.quickblox.module.chat.smack.SmackAndroid;


public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        SmackAndroid.init(this);
    }
}

一個簡單的谷歌搜索,您會找到答案。

答案是您的jar文件不包含正確的jar文件,該文件包含您需要的java類。

如果您不使用任何構建工具。 然后,我建議您使用它。 這樣您就可以告訴構建工具包含非常重要的jar文件。

諸如ivy,maven,ant等構建工具。

在IDE中進行編碼時可以使用該類的原因。 是由於某種原因IDE在其類路徑中具有該jar文件/類。 但不在構建路徑上。 為什么,由於您沒有顯示項目文件或相等文件,因此很難知道。

但我很確定您現在可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM