在大环境中用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的生成,希望有时间仔细研究一下。
# Run jarjar before generate classes-header.jar if necessary. 274 ifneq ($( strip $( LOCAL_JARJAR_RULES )),) 275 $( full_classes_header_jarjar ): PRIVATE_JARJAR_RULES :=$( LOCAL_JARJAR_RULES ) 276 $( full_classes_header_jarjar ): $( full_classes_turbine_jar ) $( LOCAL_JARJAR_RULES ) | $( JARJAR ) 277 @ echo Header JarJar : $@ 278 $( hide ) $( JAVA )- jar $( JARJAR ) process $( PRIVATE_JARJAR_RULES )$< $@ 279 else 280 full_classes_header_jarjar :=$( full_classes_turbine_jar ) 281 endif 282
㈡ 编译错误怎么解决
如果使用C的编译器,应该是能编译通过 因为C编译器如果没有写明函数的返回值的话默认的函数返回值是int 如果使用C++的编译器就编译不过了 因为C++比C更严格了,不允许默认的int返回值
㈢ fflua c++17编译报错
可能是出现语法错误。
C语言程序文件的编译错误分为三类,分别是:语法错误:属于在编译过程中所用的语法发生错误,在编译器编译时就会自动报错的。异常错误:又叫运行错误,即在编写的程序在运行时会发生计算错误。逻辑错误:即你所编写的程序没有按照你的预想给出正确的答案。
㈣ Dev C++出现问题,编译出错:source file not compiled
Dev C++出现问题,编译出错因为设置错误造成的,解决方法如下:
1、先打开dev c++程序,然后我们新建一个文件。
㈤ 为什么编译时出现cannot find lz错误,怎么解决
编译时出现cannot find lz错误,是设置错误造成的,解决方法如下:
1、首先在使用angular-cli开发处唯薯滑理Base64,出现了编译错误【error TS2304: Cannot find 】。