问题描述:
我的项目里使用了一个做人脸识别和活体认证的SDK,SDK提供的文件都是AAR格式,将AAR导入到项目当中之后,调用SDK初始化没问题,但是调用人脸进行认证的时候程序闪退了,报错NoClassDefFoundError说是找不Activity,但是这个Activity确实是再项目当中。
解决方案:
经过排查发现这个做人脸认证的SDK是用support版本来写的,而我的项目用的androidx,版本不同导致AppCompatActivity的包名也不相同,所以在运行时SDK中的Activity无法找到support的包,然后就报错了。
最后没办法我只能将我的项目改成support版本,恶心的是它报错时不提示AppCompatActivity找不到,而是提示具体的那个Activity找不到,让我搞了三个多小时才找到原因,真的是涨知识了呀。
总结:
AAR文件中的依赖好多都是根据主项目的gradle配置来的,如果AAR中有引用其他的依赖包,那么你的主项目gradle中一定要配置,不然就会像我一样报错。