2015-12-01 71 views
1

錯誤日誌現有類是java.lang.NoClassDefFoundError在安卓

java.lang.NoClassDefFoundError: com.test.service.SmartManager$BackgroundHandlerThread 
    at com.test.service.SmartManager.<init>(SmartManager.java:107) 
    at com.test.service.LiveUSdkService.onCreate(LiveUSdkService.java:82) 
    at android.app.ActivityThread.handleCreateService(ActivityThread.java:2574) 
    at android.app.ActivityThread.access$1800(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5052) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
    at dalvik.system.NativeStart.main(Native Method) 

但這類定義爲內部靜態類

我這裏一流

public class SmartManager { 
    /** 
     Varibale initialization 
    **/ 

    static class BackgroundHandlerThread extends HandlerThread { 
     Handler mHandler = null; 

     BackgroundHandlerThread() { 
      super("BackgroundHandlerThread"); 
      start(); 
      mHandler = new Handler(getLooper()); 
     } 

     void runInBackground(Runnable runnable) { 
      mHandler.post(runnable); 
     } 
    } 

    public SmartManager() { 
     /** 
     ............ 
        */ 
     mThread = new BackgroundHandlerThread(); // Here i got error like this 
     /** 
     ............ 
        */ 
    } 
    /** 
    Rest of the code 
    **/ 
} 

當我運行我的應用程序,它會給出這樣的錯誤。但是,類的定義如上所示。但編號不知道爲什麼這樣顯示。

+0

如果使用大量庫和multidex被禁用,則這發生。 –

+0

multidex is enabled –

回答

3

只需啓用即可修復此錯誤。

Android有一個65k的庫方法,它不會接受大量文件作爲庫。

欲瞭解更多請參考:http://developer.android.com/tools/building/multidex.html(建築應用超過65000法)

所以在你的搖籃做這樣的事情......

android { 
    compileSdkVersion 22 
    buildToolsVersion "23.0.0" 

     defaultConfig { 
      minSdkVersion 14 //lower than 14 doesn't support multidex 
      targetSdkVersion 22 

      // Enabling multidex support. 
      multiDexEnabled true 
     } 
} 

dependencies { 
    compile 'com.android.support:multidex:1.0.1' 
} 
+0

同樣的問題存在 –

+0

現在它的工作感謝@Prasanna Anbu –

+0

你做了什麼改變 –