美文网首页
AndroidStudio java.lang.NoClassD

AndroidStudio java.lang.NoClassD

作者: Thresh0ld | 来源:发表于2017-07-10 11:15 被阅读359次

被这个问题折磨了好久,依稀记得去年(2016)遇到这个问题的时候也搜索了好久,记得当初貌似是重建了项目,然后把代码拷贝过去就好了,但是这次不好使了。在我网上搜了文章,大部分博主都在告诉你原因:JVM 找不到这个类或者class loader之类 bla bla bla... 然后呢,可是然后怎么解决呢?戛然而止了,留下我一个人在各大博主的文后凌乱。。。

项目运行好好的,突然有一天各种Crash,编译没有任何问题,一运行就各种crash,报 java.lang.NoClassDefFoundError 或者 某某module找不到,但是你在IDE明明是能找到的。心中一万头草泥马呼啸而过。
遇到这个问题,结合StackOverflow给的解决方法,大多分为以下几种,大家可以根据自己的情况依次实验,能解决就不要继续下一步了。

  1. 先清理再Rebuild: Clean Project - Rebuild Project
image.png
  1. 关闭Studio,到项目文件下把build文件夹都删了,再把Studio打开编译运行看看是否解决了。

  2. 清理缓存重启Studio: File- Invalidate Cahces / Restart...

image.png
  1. 大招:在Android Studio中引入MultiDex
    在build.gradle中按照下面配置
   defaultConfig {
        applicationId "com.threshold.learningdriving"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 3
        versionName "2.3.0"
        multiDexEnabled true //Support more than 65535 functions
    }
dependencies {
      //........
      compile "com.android.support:multidex:1.0.1"
      //........
}

新建一个 App 类继承 Application

public class App extends android.app.Application {
//.....
      @Override
      protected void attachBaseContext(Context base) {
          super.attachBaseContext(base);
          MultiDex.install(this);
      }
//.....
}

在AndroidManifest.xml中配置Application name

   <application
        android:name=".App"
//....省略其他配置
        >
//.........
</application>

嗯,这样你的MultiDex应该就配置好了,再Run一下看看是否还会报错。


关注我的公众号.jpg

相关文章

网友评论

      本文标题:AndroidStudio java.lang.NoClassD

      本文链接:https://www.haomeiwen.com/subject/snsyhxtx.html