2014-04-01 90 views
1

我收到錯誤消息。下面是日誌:如何解決「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); 
    } 
} 
+0

看起來像你的項目沒有'com.quickblox.module.chat.smack.SmackAndroid'類... –

+0

@LuiggiMendoza should't拋出類沒有找到呢? –

+1

檢查['NoClassDefFoundError'](http://docs.oracle.com/javase/7/docs/api/java/lang/NoClassDefFoundError.html)javadoc:*當前正在執行的類中存在搜索到的類定義被編譯了,但定義不能再被找到。* –

回答

0

一個簡單的google搜索,你會找到答案。

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

如果您不使用任何構建工具。那麼我建議你使用它。所以你可以告訴構建工具包含非常重要的jar文件。

構建工具像常春藤,行家,螞蟻等

你之所以可以使用類時,你在你的IDE代碼。是由於某種原因IDE在其類路徑中具有該jar-file/class。但不是在構建路徑上。 爲什麼很難知道,因爲你沒有顯示你的項目文件或同等文件。

但我敢肯定你現在可以解決問題。

+0

我試圖將該jar添加爲外部jar,也添加到libs文件夾以及構建路徑! –

+0

你檢查編譯的jar文件嗎?那個jar文件是否包含缺少類的jar文件? 如果沒有,那麼有關設置的東西有些東西。 如果我有權訪問代碼/打包的jar文件。我會打開並查看包含。 這會給你一個很好的線索有什麼問題。 – Viggo

+0

基本上我向quickbloX隊報告過同樣的問題。他們說他們身邊的一切都很好。所以缺少上課的可能性很少。任何解決辦法? –

相關問題