美文网首页
由集成极光推送引发的java.lang.NoClassDefFo

由集成极光推送引发的java.lang.NoClassDefFo

作者: 大尹EIE | 来源:发表于2017-06-13 12:56 被阅读0次

项目推送要换成极光推送,接入之后就说方法超过了64k,虽然去除之前不必要的依赖可能会解决问题,

但既然出现了,就解决一下,多了解点东西。于是乎,就开始了。

1.添加依赖于你的build.gradle支持MultiDex库

compile 'org.robolectric:shadows-multidex:3.3.2'

2.开启multiDexEnabled

在defaultConfig{...}中添加

multiDexEnabled true

然后我以为就这样就可以了,于是就开始尝试运行。但是问题出现了,在 4.x 的测试机上运行后会提示标

题中的错误,就是类找不到;但是在自己6.0的手机上运行就可以。进一步测试,发现测试机上将混淆开启

后也可以正常运行。刚开始还以为是我混淆配置文件的问题,后来想想也不对,不然不会只在6.0的手机上

可以运行。于是直接搜索错误,看到了有说dex分包的问题,试过后才知道错误的真正原因。

原来以前只知道方法超过64k要分包,要添加依赖,但不知道还要有其他配置。参考如下:

DEX 方法超过64K限制和gradle编译OOM问题解决

这里再复制一下,方便查看:

1.如果项目中没有创建自己的Application 类,可以在清单文件AndroidManifest.xml中配置

android.support.multidex.MultiDexApplication 就可以了。

android:name="android.support.multidex.MultiDexApplication" 

2.如果项目中有自己的Application类了,可以让它继承 android.support.multidex.MultiDexApplication。

或者继承Application 类。在 attachBaseContext()/onCreate() 中添加

MultiDex.install(this);

如:

  @Override
  
    protected void attachBaseContext(Context base) {
    
        super.attachBaseContext(base);
        
        MultiDex.install(this);
        
    }

这样,在 4.x 的机器上就可以正常运行了。

至于为什么在6.0的手机上可以正常运行,可能是因为 Android 5.0 以后的atr虚拟机和 dalvik 虚拟机的模

式不一样的原因吧;而为什么在 4.x 的手机上开启混淆就可以正常运行,这个原因还是不清楚。希望知道

原因的大神指导我一下,谢谢!

相关文章

  • 由集成极光推送引发的java.lang.NoClassDefFo

    项目推送要换成极光推送,接入之后就说方法超过了64k,虽然去除之前不必要的依赖可能会解决问题, 但既然出现了,就解...

  • 实现iOS收到推送消息后跳到指定的页面

    ########这里离线推送用的极光推送,集成推送这里就不做说明了,根据极光官方文档集成基本没有什么问题。 ###...

  • 极光推送集成开发

    1.极光推送集成与设置 极光推送地址①注册极光推送账号。②在应用管理内按照步骤创建APP。③找到“文档——iOS—...

  • "_OBJC_CLASS_$_JPUSHService

    在集成极光推送的时候运行报错:

  • iOS-iOS10极光推送的使用

    1、首先先配置好推送证书,传到极光。极光推送->iOS证书设置指南极光推送->iOS SDK集成指南(XCode8...

  • iOS-极光推送的使用

    1、首先先配置好推送证书,传到极光。极光推送->iOS证书设置指南极光推送->iOS SDK集成指南(XCode8...

  • 极光后台推送响铃

    前言: 本教程不讨论极光推送的集成,请自行百度如何集成极光推送本教程适用于需要支持ios10以下的后台推送响铃对于...

  • 极光推送集成总结

    最近项目上集成了极光推送,这里做一下集成过程中的步骤及出现的问题(集成框架借鉴极光官方文档).具体推送的原理就不说...

  • Android 推送跳转逻辑

    本文例子已极光推送为例,极光推送集成连接如下:https://docs.jiguang.cn/jpush/clie...

  • iOS 极光推送

    一、理解 二、集成、使用 ios 极光推送的集成及注意事项

网友评论

      本文标题:由集成极光推送引发的java.lang.NoClassDefFo

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