2015-12-01 42 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

你做了什么改变 –