美文网首页
解决`java.long.NoClassDefFoundErro

解决`java.long.NoClassDefFoundErro

作者: Chauncey_Chen | 来源:发表于2017-10-25 10:07 被阅读68次

解决java.long.NoClassDefFoundError

这个问题的原因多出现于Android版本兼容上

Android5.0以下的手机,会出现java.long.NoClassDefFoundError

情况1: 当你的方法数超量时,采用

  1. 在Module的build.gradle的defaultConfig中加一行multiDexEnabled true

  2. 在dependencies中添加一行compile 'com.android.support:multidex:1.0.0'

  3. 如果有自定义的Application,那么在自定义的Application类中,继承MultiDexApplication

情况2: 如果上面都没有问题, 请检查你 报错的类里面, 有没有引用高版本API

比如,我在Android4.3上跑项目, 但是我类A implement 了一个Android7.0的接口,也会报这个错误.

因为 这个A 会被编译成.class 打包进.dex ,但是会被Android4.3的系统识别成 高版本API. 类A将不会运行.

解决方法:

在做版本兼容的时候, 类名或者主要方法上 尽量不要 混编高API的方法或者接口.

比如这样


image.png

尽量在一个方法中做版本兼容,比如这样.

 /**
     * 兼容5.0以下版本
     */
    private void setOnScrollListenerV5() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (scrollChangeListener == null) {
                scrollChangeListener = new WevScrollChangeListener();
            }
            mWebView.setOnScrollChangeListener(scrollChangeListener);
        }
    }
    /**
     * 兼容5.0以下版本
     */
    @RequiresApi(api = Build.VERSION_CODES.M)
    public class WevScrollChangeListener implements View.OnScrollChangeListener {

        @Override
        public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {


        }
    }

相关文章

  • 解决`java.long.NoClassDefFoundErro

    解决java.long.NoClassDefFoundError 这个问题的原因多出现于Android版本兼容上 ...

  • 【解决】

    解决理想 解决生活 解决让我平凡的错 解决孤单 解决折磨 解决一开始就着了的魔 解决饥饿 解决战火 解决核时代被抽...

  • 报错集锦

    问题一: 解决: 问题二: 解决: 问题三: 解决: 问题四: 解决: 问题五: 解决:

  • 解决 问题 解决

    你解决一个问题,就像当于解决无数个问题。听到这句话的时候我已经毕业了。回想之前的学习经历,一张试卷,碰到难题就放那...

  • some

    枪解决了, 炮解决了, 人解决了, 衣服解决了, 时间解决了, 地方解决了, 就看着车马飞驰, 结局降临, 吾事已毕。

  • 我还是在这里

    生活不能解决的事情,日记可以解决;日记不能解决的事情,思想可以解决;思想不能解决的事情,放空可以解决;放...

  • 页面布局(三栏布局)

    浮动解决方案 绝对定位解决方案 flexbox解决方案 表格布局解决方案 网格布局解决方案

  • 忙起来

    忙碌,能解决很多问题 解决你胡思乱想的问题 解决你彷徨迷茫的问题 解决你痴心妄想的问题 解决你自卑弱小的问题 解决...

  • ……纵情沉浸于清愁与静谧吧

    生活不能解决的事情,日记可以解决;日记不能解决的事情,思想可以解决;思想不能解决的事情,放空可以解决;放空不...

  • 《慧杰语录》——每日必读

    劳动,解决吃饭的问题。 工作,解决生存的问题。 能力,解决存在的问题。 素质,解决关系的问题。 奋斗,解决态度的问...

网友评论

      本文标题:解决`java.long.NoClassDefFoundErro

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