登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

查看: 113|回复: 5

Android 程序以及在4.4.4以上报错但是在4.4.4以上不报错,androi

[复制链接]

113

主题

113

帖子

258

安币

手工艺人

发表于 2017-11-14 10:27:14 | 显示全部楼层 |阅读模式

        大家在做些App的时候,有没有遇见过这样一个问题,程序运行之后再4.4.4系统以上不报错,但是当程序运行在4.4.4系统一下是程序就会闪退。同时有的时候会报java.lang.VerifyError.

        那么为什么会出现这样的问题,其实你在程序报错这个错误的时候仔细分析,你就会发现一般在你继承一些比较庞大的第三方的时候就会出现这个问题。

        出现这种原因是因为Android规定方法的数量不能超过 65,536,它代表的是单个 Dalvik 字节码文件内的代码可调用的引用总数。

        Android 5.0 之前版本的 Dalvik 可执行文件不支持分包

        Android 5.0之前的版本使用 Dalvik 来执行应用代码。默认情况下,Dalvik 限制应用的每个 APK 只能使用单个 classes.dex 字节码文件

        而Android 5.0 及更高版本的 Dalvik 可执行文件支持分包

        Android 5.0及更高版本使用名为 ART 的运行时,后者原生支持从 APK 文件加载多个 DEX 文件。ART 在应用安装时执行预编译,扫描 classesN.dex 文件,并将它们编译成单个 .oat 文件,供 Android 设备执行

        上面说了那么多基本我也是从网上copy过来的,其实最重要的是解决方法。
        这里有两种解决方式

        1.就是你将minSdkVersion 设置为 21 或更高值
        这种方法非常简单就是将在build.gradle文件中将 multiDexEnabled 设置为 true

        说估计你们有点模糊,直接上代码

[Java] 查看源文件 复制代码
android {    defaultConfig {        ...        minSdkVersion 21         targetSdkVersion 23        multiDexEnabled true    }    ...}

        2.就是你将minSdkVersion 设置为 21以下
          首先在build.gradle文件中将 multiDexEnabled 设置为 true

[Java] 查看源文件 复制代码
android {    defaultConfig {        ...        minSdkVersion 21         targetSdkVersion 23        multiDexEnabled true    }    ...}

        其次重写一个类继承Application然后重写attachBaseContext方法
        直接上代码

[Java] 查看源文件 复制代码
public class MyApplication2 extends Application {    @Override    protected void attachBaseContext(Context base) {        super.attachBaseContext(base);        MultiDex.install(this);    }}

        最后别忘了在manifest文件里面使用我们自己的Application哦

        这只是我踩过很多个坑中的一个,这里写出来一个是做一下记录,另一个是希望大家别在这个坑里面呆的时间过长


        

0

主题

8368

帖子

-2397

安币

限制会员

发表于 2017-11-15 02:20:41 | 显示全部楼层
安卓巴士是个不错的网站,我来顶个贴~

6

主题

8564

帖子

-2486

安币

限制会员

发表于 2017-11-15 14:16:36 | 显示全部楼层
感觉楼主很用心,辛苦啦~

7

主题

8616

帖子

-2052

安币

限制会员

发表于 2017-11-16 02:41:09 | 显示全部楼层
安卓巴士是个不错的网站,我来顶个贴~

0

主题

1万

帖子

-2479

安币

限制会员

发表于 2017-11-16 17:31:03 | 显示全部楼层
感谢分享,安卓巴士有你更精彩:lol

20

主题

8244

帖子

-2437

安币

限制会员

发表于 2017-11-17 18:02:58 | 显示全部楼层
感谢分享,楼主V5~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表