今天遇到一个问题,我在将项目打包成jar(不知道如何将项目用as打包成jar包的看这里)应用到主工程的时候。主工程apk在真机运行的时候,报了一个错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: yucan.com.swipe.dismiss, PID: 19570
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/nineoldandroids/view/ViewHelper;
这就坑了,怎么会找不到class文件呢?
一查代码发现,这个class讲道理是在jar项目里面的一个jar包里面。怎么回报这个问题呢?
既然找不到,那我就在主工程也放入这个jar包吧。这样又会报文件重复的问题。
纠结啊!!!
查了一下发现可以这样解决:
在编写库工程的时候,将jar依赖关系设置成
provided
代码如下:
provided files('libs/nineoldandroids-2.4.0.jar')
如图:
然后,再打一个jar包(打包方法不知道的话,还是看这里)
然后将这个jar包放入要应用的工程,同时将第三方的jar也放入主工程。
例如:
然后运行,就OK了