java.lang.AbstractMethodError异常

java.lang.AbstractMethodError异常前言:今天APP在客户华为Android10版本手机上闪退,报如下异常,10以下版本无任何问题,异常信息也没有自己APP报错的堆栈信息,无法直接定位到是那行代码导致的问题,苦逼了半天,梳理思路,终于解决了。分析:由于APP没有做Q版本适配,难道不兼容吗?于是安装Q版模拟器进行复现问题,直接运行安装发现没有闪退,难道是只有在华为手机上才出现问题吗?为了验证这个观点,就用客户相同的安装包进行…

大家好,又见面了,我是你们的朋友全栈君。

前言:今天APP在客户华为Android 10版本手机上闪退,报如下异常,10以下版本无任何问题,异常信息也没有自己APP报错的堆栈信息,无法直接定位到是那行代码导致的问题,苦逼了半天,梳理思路,终于解决了。

java.lang.AbstractMethodError异常

分析:由于APP没有做Q版本适配,难道不兼容吗?于是安装Q版模拟器进行复现问题,直接运行安装发现没有闪退,难道是只有在华为手机上才出现问题吗?为了验证这个观点,就用客户相同的安装包进行复现,结果闪退了,有了这个重大发现问题就容易解决了,由于直接运行和打包用的都是同一套代码,并且build.gradlew中配置的release和debug一致,且都开启了代码混淆,后来才意识到直接运行的包(默认debug)是不进行代码混淆(而打包debug和release都是混淆过的),于是就将代码混淆关闭进行打包,结果问题修复,进一步确认是由于代码混淆导致的,那究竟是哪里使用导致的呢?在项目全局搜索TelephonyManager,发现自己并没有用,那很可能是第三方依赖包导致的,于是一一排查,最终发现问题所在,原来是高德定位报的问题,这里详情说一下,首先使用自动导最新包方式”com.amap.api:location:latest.integration”,当时集成时混淆规则没有“-keep class com.loc.**{*;}”这行,但最新包需要添加这行规则,这就是问题所在,每次打包使用最新依赖包,但是混淆规则没有做及时更新导致了问题。

java.lang.AbstractMethodError异常

解决:混淆规则中添加“-keep class com.loc.**{*;}”

总结:这里建议导包使用最新的具体版本,后期查看依赖包更新日志再进行版本更新。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137068.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • goland 激活码2021(破解版激活)

    goland 激活码2021(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    472
  • Deepfakes中文版,汉化版下载,各换脸软件下载(都已整理好)

    Deepfakes目前用于深度换脸的程序基本都是用python编程语言基于tensorflow进行计算。以下列出几款常用的换脸程序优缺点浅析,用户可以根据自己的爱好和水平来选择,以下软件均需要先安装windows版本的VS2015,CUDA9.0和CuDNN7.0.5(fakeapp教程,deepfakes视频deepfakes中文站(deepfakes.com.cn))下面几个程序的对比和官网下载地址,上deepfakes中文站(deepfakes.com.cn)获得百度云地址。1.Open

    2022年4月3日
    1.2K
  • tkmybatis使用注解实现动态配置(feignclient注解使用)

    generator.properties:spring.datasource.driverClassName=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://10.244.76.11:3306/esign?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBeha…

    2022年4月17日
    37
  • springboot项目启动原理_相关滤波器的基本原理

    springboot项目启动原理_相关滤波器的基本原理一、springboot启动原理及相关流程概览springboot是基于spring的新型的轻量级框架,最厉害的地方当属自动配置。那我们就可以根据启动流程和相关原理来看看,如何实现传奇的自动配置二、springboot的启动类入口用过springboot的技术人员很显而易见的两者之间的差别就是视觉上很直观的:springboot有自己独立的启动类(独立…

    2022年8月21日
    6
  • div style clear both_that’s all right

    div style clear both_that’s all right前言:    感觉是刚过春招,又要开始秋招,对于技术渣渣、学历普通的我,忧愁再次降临。开始准备秋招路途中……来温故而知新,沉下心好好学习。貌似本人在清除浮动中第一次接触clear:left/right,平时只用到clear:both,好像也只见到这个,这就尴尬了。一、什么是浮动,标准文档流又是个啥    所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从

    2022年9月12日
    0
  • Python break 和 continue 语句

    Python break 和 continue 语句在Python中,break和continue语句用于改变普通循环的流程。通常情况下,循环遍历一段代码,直到判断条件为False。但有时,可能会希望不检测判断条件就可以终止当前迭代,甚至是整个循环。这种情况下,就需要使用break和continue语句。

    2022年6月10日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号