写这篇博客的原因是项目中遇到了一个关于混淆的坑并且很艰难的爬了出来。

Android的混淆知识请参:Android代码混淆之混淆规则

项目要求集成对蓝牙设备的操作,并且很快完成了这个需求,在自己的app中测试没遇到什么问题,当把app作为另一个大项目的aar集成后,再次测试这个蓝牙功能出现了Crash。顿时恐惧且疑惑,为什么作为aar就出现了问题?由于大项目自己没有源码,不能通过Debug调试找到问题,只好在关键的地方写好日志后再次打包测试,仔细看了日志,感到莫名其妙,从日志的数据看就该是正确的结果,可偏偏运行出了Crash。实在忍不了了,就找大项目的同事Debug跑一遍,可一直出现singal,就决定先跑一遍代码测试看看,这次居然没出现错误,并顺利的操作了蓝牙设备,我又用自己的项目打了个release包,测试没问题,现在出现Crash的场景很明显了。

自己项目 直接跑码运行测试:没问题 release打包测试:没问题
aar 直接跑码运行测试:没问题 release打包测试:Crash

这时候想到了,release打包项目会出现混淆,跑码运行不会出现混淆,就建议大项目开发设置我们的项目aar打包不使用混淆,奇迹出现了,顺利的完成了操作蓝牙设备,之前出现的Crash没有再出现。

更多相关文章

  1. Android中R.java文件丢失了该怎么办?
  2. (8)Android之路====Android新增自定义项目配置
  3. android 导入项目 项目中文字乱码问题
  4. 组件化:腾讯 T3 Android(安卓)高级开发岗必问知识点
  5. 为“分裂的”Android平台开发应用的一些建议
  6. Android(安卓)SQLiteException: near "": syntax error (code 1)
  7. 从零开始的Android新项目11 - 组件化实践(1)
  8. Android键盘灯亮度控制
  9. Android开发者应该保持以下特质

随机推荐

  1. android getResources的作用
  2. ❤️【Android精进之路-04】Android核心组
  3. 分享Android(安卓)KTX + Kotlin协程 组合
  4. android ndk 开发
  5. Unity和Android通信系列文章1——总览
  6. Android百度地图(二):百度地图sdk显示位
  7. Android(安卓)系统菜单与自定义菜单
  8. 2021年Android高级面试题,终局之战
  9. Android:Kotlin详细入门学习指南-类和对象
  10. android 安装 出现Android(安卓)Native D