正常运行的时候抛出异常:
java.lang.NoClassDefFoundError:Failed resolution of :Lcom.alipay.sdk.app.PayTask
或者
java.lang.NoClassDefFoundError:Failed resolution of :Lcom.alipay.sdk.app.AuthTask
从异常堆栈很明显可以知道,是因为找不到PayTask这个类。
但是这个类就是存在的,为什么会找不到呢?后来经过各种排查,发现是因为项目使用了aspectjx这个库导致的,是一个AOP框架,aspectj会处理所有的二进制代码文件和库
解决办法在app目录下的build.gradle文件中 android{} 外面中写如下代码:
aspectjx {
//排除所有package路径中包含`android.support`的class文件及库(jar文件)
exclude 'com/alipay'
}
如果不起作用就改成下面这样
aspectjx {
//排除所有package路径中包含`android.support`的class文件及库(jar文件)
exclude 'com.alipay'
}
大功告成!