环境说明
公司的项目中是使用了growingio这个sdk,但是我自己做的一个测试项目中并没有引入。突然有一次项目中随便点了一下空白的位置,然后项目就崩溃了!
这是崩溃的报错
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/growingio/android/sdk/agent/VdsAgent;
。。。。
。。。
然后我就懵逼了 开始各种谷歌,百度。我的项目中,并没有引入啊,后来无奈,采取了网上的做法,将install run开启就行了,果然,一开,就好了,然后我就逗逼的继续开发了。
。
。
。
过了n天,别人找我要开发包,我传给他,结果他一打开,就直接crash报错
报如下
Unable to instantiate application com.***.****.App: java.lang.ClassNotFoundException: Didn't find class "com.****.****.App" on path: DexPathList[[zip file "/data/app/com.****.****.-2/base.apk"],nativeLibraryDirectories=[/data/app/com.****.****.-2/lib/arm, /data/app/com.****.****.-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
然后我就开始sb一样的继续谷歌,百度,按照网上说的,要把install run关掉,但是关掉了 就又要报找不到那个sb的sdk了啊,但是无奈,我就关掉,果然这个bug好了。但是 这就是拆东墙补西墙啊,日,还是自己最开始没有解决的问题引发的问题,
正视这个bug
于是我就开始仔细的查找这个问题,后来在一篇文章中找到了原因
原来是growingio改了v4 包中的class文件,把它们的sdk引入进去了。日,所以 这样真正的解决办法就是改掉引入的v4包版本改成其他版本即可
v7 包中引入了v4包
所以只要把
compile 'com.android.support:appcompat-v7:26.0.0-alpha1' ->改掉后面的版本号就行了(升高, 降低都可以)
查看support历史
总结
以后遇到bug不能糊弄,到最后都是要还的!