错误情况:
项目中使用的两个jar包之间存在相互调用,其中一个jar通过使用classLoader类加载按照全类名路径来加载该类,此时会报classNotFound错误。
对于网上说的通过Gradle clean完成之后再rebuild 等其它方法也尝试过,无法解决问题。
首先查看目录结构和配置,发现没有什么问题。
尝试在安卓的MainActivity中直接调用,发现可以调用。之后仔细排查发现在某一个类中改变了当前线程的ClassLoader
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
Thread.currentThread().setContextClassLoader(classLoader);
解决办法:
ClassLoader classLoader = MainActivity.class.getClassLoader();
Thread.currentThread().setContextClassLoader(classLoader);