1,导入StringFog库导致的This feature requires ASM7的bug和java.lang.NullPointerException (no error message)
首先是报java.lang.NullPointerException (no error message)问题,在StringFog的github中也看到相同的问题,但是那边并没有给出确切的解决办法,那边说的是AS的gradle版本在3.5.1导致的,而我正好是3.5.0,同时我之前使用StringFog的版本是3.2.0,并没有这个问题,所以第一次采取改变版本,我选择将gradle版本降到3.2.0,完成后编译发现并没有解决这个问题
我想会不会是gradle3.0的版本都出问题了,选择升级到4.0,反而出现了新的问题Could not find com.aliyun.ams:alicloud-android-utdid:1.1.5.4.这个问题倒是很快就解决了,只需要在有引用aliyun ams的库的地方加上{exclude(module:'alicloud-android-utdid')},然后再次编译又一次报了This feature requires ASM7
经过之前的操作可以确定与gradle的版本无关了,那是不是与依赖项有关呢,我选择将项目中所有的依赖项放到一个新建的项目中去,加上StringFog,编译没有问题,再将libs中的jar文件放过去,问题重新出现,最终确定是bcprov-jdk15on-1.65.jar这个文件与StringFog冲突了,去掉这个依赖就能解决问题,但是项目中又确实需要这个jar中的加密函数,那怎么办呢
我进入到提供bcprov-jdk15on-1.65.jar的官网https://www.bouncycastle.org.中,发现他们针对jdk的不同的版本是由发布多个jar的下载,而在之前的查资料过程中偶然有看到类似jdk导致的一些问题,我就想是不是可能与这方面有关,选择下载bcprov-jdk15to18-1.66.jar,替换1.65,重新编译,问题解决