打包aar 嵌套引用本地 aar
APP主程序需要引用mylibrary的aar,而mylibrary库引用了mylibrary2。不管APP主程序是否调用到mylibrary2,打包的时候,都必须把mylibrary2引用进去。因为将mylibrary打包成aar的时候,并不会把它所引用的aar一起打包进去。
mylibrary2执行一个日志打印。
mylibrary执行一个日志打印后,调用mylibrary2中Test.class中show()方法。
mylibrary中,build.gradle中引用mylibrary2的aar文件。
这里要注意下,module引用aar,repositories下提供搜索的目录需要指定当前module的libs,不然会引起NoClassFoundError。也就是引用不到,找不到aar文件了上使用到的类文件。
上图就是app中build.gradle屏蔽了引入mylibrary2的aar后执行报错。
主程序my application下app中代码段
主要是执行mylibrary中Test的show()方法。对应build.gradle
这样子。就可以跑起来。
看下External Libraries中mylibrary的内容
没有打包出来aar。
总结就是:所有module或者aar上引用到的第三方库,尽管app主目录没有引用,也要引用进去。