想要快速解决该问题可以直接看文章结尾,前面是我踩坑的历程
踩坑历程
最近公司入手了两台三台全新的测试手机,一台华为meta10,一台OPPO R11plus还有一台Vivo X20,本来想美滋滋的拿来做调试使用,结果不尽人意,除了华为能够正常在deBug模式下进行直接安装调试使用,其余两台都报错,OPPO安装之后无法启动,vivo直接安装不上(直接从应用市场下载,或者打包正式APK是没有问题的),百度了大半天也没能找到解决的办法。
OPPO手机出错截图
Vivo手机出错截图
由于我个人使用OPPO这台手机,找了半天发现OPPO的官方论坛也有很多人在说这个问题,都说调试不了,然后也没有解决方法,当时的我就以为这就是OPPO的问题呀,然后兴致勃勃的注册了个OPPO的账号,也发了个帖子在那里问(因为之前别人问的帖子已经关闭了,而且没有正确的解答),发帖子之后立马就有人回复,OPPO这个效率还是很高的,值得称赞。下面是帖子的截图
然后我就根据他们的回复录屏呀,截图啊,抓Log呀,然而并没有什么卵用,他们给我的方案什么的都比较鸡肋,不过OPPO还算是很负责的,还加我QQ啊什么的给我解答,最后让我把直接运行的deBug的APK发给他们,然后他们说用我们的APK安装了很多别的手机,结果都还是不能运行,这特么就尴尬了呀,然后自己安装在别的测试机上运行,结果真的很尴尬呀,还真是都不行,排除了是他们的手机系统的问题呀。默默的尴尬了很久,想想自己还真是进入了思维误区啊,看到网上很多人说他们手机有这个问题,刚好又是新出来的机子,结果就想当然的以为是他们的问题了。(很难受,默默的伤心一波(;′⌒`))。
好了,伤心之后这个问题还是要解决的呀,不然公司买了那么贵的测试机来,就只能测试安装一下应用玩一玩了,那多浪费呀,本着节约是中华民族的传统美德,必须不能浪费呀,要多利用手机多制造用途呀,还是得把这个问题搞定呀。自己再回归原点,找是不是自己这边的问题。重新deBug运行在之前低版本的手机上,完全没有问题,调试功能什么的杠杠的。再运行到OPPO手机上,还是一样的崩溃,知道是自己去问题,然后就去找呗,一看log,MD还能这样子玩,崩溃竟然报出这种BUG
竟然报我们的Application文件找不到,好吧,这个才是问题的根源,继续百度找问题的解决方案吧,经过一番搜索和调试之后,定位到了问题,竟然是gradle的问题
gradle的版本大于2.3.0之后,在高版本运行时就有可能导致这个问题发生。
将gradle版本改成2.3.0以下以后直接deBug运行结果居然就神奇的运行起来了,真的是贼激动呀。MD 终于出来了,然后兴致冲冲的去开启调试功能,打断点调试,结果尼玛呦 断点直接跳过去了,没有作用!!!当时真是要砸电脑了...但是作为一个优秀的程序员(其实是码农),生活的经历和阅历锻造出我强大的内心素质(其实完全是扯淡O(∩_∩)O),我还是喝了口凉水冷静下来,再看自己的一些配置问题,进行不断的调试,终于发现问题的原因了。
我们工程在deBug的模式下开启混淆模式,这样导致了无法断点调试。直接将混淆关闭之后,再运行工程就可以完美的进行deBug模式并且调试了。(当然如果不需要打断点调试的话,直接将上图deBug模式下,debuggable设置为false就可以用了,gradle文件的版本都不用改)
快速解决方法
1.gradle的版本设置需要小于2.3.0
路径在工程build.gradle文件下 dependencies 里面 设置为 classpath'com.android.tools.build:gradle:2.2.3'(小于2.3.0就好)
2.deBug模式下关闭混淆
APP目录下build.gradle文件里面的buildTypes节点下 将debug节点里面minifyEnabled 设置为false即可