在大环境中用make编译app时有时候会报下面的错误。
ninja: error: 'out/target/common/obj/JAVA_LIBRARIES/widget_intermediates/classes-header.jar', needed by 'out/target/common/obj/APPS/Mms_intermediates/classes-full-debug.jar', missing and no known rule to make it
17:42:04 ninja failed with: exit status 1
从错误看,是找不到header包。但是单编widget这个包的时候,生成的又没有这个header包,全编的时候才有,所以要把这个模块的mk文件include到MMS模块的mk文件中,重新编译一下就有了。
用JD-JUI 把这个classes-header.jar打开看一下,发现这个文件包里面只有各个类的函数声明,没有具体的实现,就类似C语言的.h文件,是在编译java文件的时候同步生成的,可以查系统 的mk编译文件。
在android 的external 目录下有一个 Turbine 包,应该是生成jar的header文件的。
在 build/make/core/java.mk 里面有header的生成,希望有时间仔细研究一下。