leakcanary 使用问题

在高版本android 系统上发生空指针异常或者不能接收消息,改用leakcanary 1.5


在复杂应用上

当dex分包遇上NoClassDefFoundError&ClassNotFoundException

不同手机处理方式不同
参考文章 http://blog.csdn.net/daitu_liang/article/details/72987378

一. 如果你继承了MutiDexApplication或者覆写了Application中的attachBaseContext()方法.

Application类中逻辑的注意事项:

Application 中的静态全局变量会比MutiDex instal()方法优先加载,所以建议避免在Application类中使用静态变量引用main classes.dex文件以外dex文件中的类,可以根据如下所示的方式进行修改:

  1. @Override  
  2.     public void onCreate() {  
  3.         super.onCreate();  
  4.   
  5.         final Context mContext = this;  
  6.         new Runnable() {  
  7.   
  8.             @Override  
  9.             public void run() {  
  10.                 // put your logic here!  
  11.                 // use the mContext instead of this here  
  12.             }  
  13.         }.run();  
  14.     } 

分包主要是因为包太大了,低端手机安装可能会失败,或者Dex加载的时候会崩溃,所以分成多个包,跟启动相关的放在主Dex,其余的不那么紧急的放在副Dex,然后启动的时候去动态加载。

首先来看看主Dex,所谓跟启动相关的主要就是四大组件,所以四大组件直接引用到的类都要放在主Dex中,否则启动时找不到类就悲剧了,毕竟动态加载副Dex可能会挺耗时的。Android Studio的build tool会自动帮你完成分包,将Android Manifest中定义的四大组件直接引用到的类都放在主Dex中,其余的丢到副Dex。不过也不保证百分百没问题,比如你用反射或者So引用副Dex中的类也许这个脚本就会瞎掉了。当然我们也可以自己写个脚本去分析APP启动需要引用到的类,方法是在APP启动完毕时打出ClassLoader中所有已加载过的类就行了。


都不是以上原因

当在

dependencies中配置aar 文件,运行时会出现classnotfound exception
但若是AS能联网配置,就不会出错
 
 
配置HTTP Proxy
Host name: mirrors.neusoft.edu.cn

Port number: 80

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值