Android 出现java.lang.NoClassDefFoundError错误

Posted 语风6649

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 出现java.lang.NoClassDefFoundError错误相关的知识,希望对你有一定的参考价值。

项目中用到了Retrofit在android4.4以下版本发生的问题

因为项目的build.gradle文件沿用于一个项目的,在defaultConfig z中已经声明了 multiDexEnabled true ,当方法数超过65535时便会自动打出两个Dex包命名为classes.dex classes2.dex ,一些方法被打入了第二个dex包,即classes2.dex中,导致了5.0以下机型无法运行应用报错。

 

解决方法:

(1)在app的 build.gradle 中的dependencies 中添加

       compile ‘com.Android.support:multidex:1.0.1‘

      dependencies {
             compile fileTree(include: [‘*.jar‘], dir: ‘libs‘)
             compile ‘com.android.support:multidex:1.0.1‘
       }
(2)在app的 build.gradle 中的 defaultConfig 中添加
           multiDexEnabled true
         defaultConfig {
      ...
      multiDexEnabled true
         }
(3)在 AndroidManifest.xml 中的  application 标签中添加 :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package=".test">
     <application
        ...
         android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>
提示:如果你的应用重写了Application,则你需要继承MultiDexApplication而不再是Application啦
如果你的工程中已经含有Application类,那么让它继承android.support.multidex.MultiDexApplication类,如果你的Application已经继承了其他类并且不想做改动,那么还有另外一种使用方式,覆写attachBaseContext()方法:

/**
 * 分割 Dex 支持
* @param base
*/
@Override
protected void attachBaseContext(Context base) {
         super.attachBaseContext(base);
          MultiDex.install(this);
}





































以上是关于Android 出现java.lang.NoClassDefFoundError错误的主要内容,如果未能解决你的问题,请参考以下文章

GsonFormatPlus Android Code Generator 右键不出现 右键出现 Generator->Copyright Android Code Generator Cod

微信账号保护中出现android-22设备是啥

Android studio出现这种情况怎么解决?

Android:为啥会出现这个错误?

android里为ImageButton设置图片出现混乱

Android使用百度地图出现闪退及定位时显示蓝屏问题