美文网首页
Android 10.0 高德地图定位闪退解决办法

Android 10.0 高德地图定位闪退解决办法

作者: 高级复制工程师 | 来源:发表于2019-12-20 11:50 被阅读0次

今天发现线上版本高德定位的时候 调用 mLocationClient.startLocation(); 就会崩溃 并且会抛出

java.lang.AbstractMethodError: abstract method "void android.telephony.TelephonyManager$CellInfoCallback.onCellInfo(java.util.List)" at android.telephony.TelephonyManager$1.lambda$onCellInfo$0(TelephonyManager.java:5420)

用户反馈Android 10.0 以下版本没问题 , 只有 Android 10.0 报错,
反复测试发现是混淆的问题,
在混淆文件添加:
-keep class com.loc.**{*;}
然后就好使了


定位问题:
一开始也不知道是什么问题引起的,后来发现当buildType是debug的时候是正常的,问我的debug没有配置混淆,所以怀疑是混淆造成的问题,然后在定位的方法里面挨个打断点试,最后定位到是:mLocationClient.startLocation();这行会崩溃所以打开这个startLocation的方法看了看:

startLocation.png import.png

觉得可能是AMapLocationClient这个类有一些不可告人的秘密,又看了看它import的类,感觉这个com.loc的包有猫腻,所以索性就把这个包给放在混淆文件里面试了一下,然后就好使了.

相关文章

网友评论

      本文标题:Android 10.0 高德地图定位闪退解决办法

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