最近在工作中,我遇到了一个编译问题,报错是这样的:
missing dependencies :
看报错的意思是缺失依赖库
于是我在Android.bp中已经添加了所需要的依赖库,但是还是报这个错。
最后才查到原因:模块是用 Android.mk 构建编译的,而我编译的测试模块是 Android.bp 构建的
知道了原因,那也就好解决了,有两种方法:
1.全部改成 Android.bp
用 androidmk 将 Android.mk 生成为 Android.bp ,(之前写过请点这里Android.mk转Android.bp)
但是Android.bp是无法条件编译的, 如果里面有条件编译,你可能需要修改你的 Android.mk
同时你的模块如果引用了其他模块,其他模块也要改成 Android.mk, 总之就是麻烦。最重要的是自动转换,Android.mk稍微复杂一点就转不出来。
2.全部改成 Android.mk (推荐)
这是添加动态依赖库的写法。
Android.bp
shared_libs :["libmycamera"]
Android.mk
LOCAL_SHARED_LIBRARIES := libmycamera
总结:
- Andriod.bp 编译的模块可以被 Android.bp 和 Android.mk 编译依赖。
- Android.mk 编译的模块仅可以被Android.mk编译的模块依赖,无法被Android.bp编译的模块依赖。
来源地址:https://blog.csdn.net/qq_45458713/article/details/129095293