Android KK 找不到cutils/properties.h

编程入门 行业动态 更新时间:2024-10-22 11:36:12

Android KK <a href=https://www.elefans.com/category/jswz/34/1771416.html style=找不到cutils/properties.h"/>

Android KK 找不到cutils/properties.h

一直通过property来控制android系统的号码匹配位数,之前的项目都工作的好好的,但到了KK时,在sqlite库中引用property的相关方法,却一直编译error...

折腾了好久,发现从KK开始google在编译 libcutils到host static library时,不再将properties.c编译进库里,而相应的target static library里是会编进去的,所以问题就来了。sqlite的mk文件里是会将sqlite编进host static库的,而libcutils在host static中又不包含property的相关方法,所以就导致编译出错。。。。另一方面,sqlite也会编进target 的static library,但target的Libcutils里是包含了property的编译的,所以不会有问题,问题就出来这个Host的编译上。

 

解决办法一:修改libcutils的mk文件,将properties.c编进host static library,这样host static里的sqlite也可以引用了;

         这个方法尝试了,但关联实在是多,并非单单加一个properties.c到编译里这么简单,这里也要吐槽下google,怎么会改这个地方。

 

解决方法二:使用宏控制,针对host static的sqlite编译,不加property的相关引用。

         所选择的宏,可以从 build\core\combo\include\arch\ 里的 AndroidConfig.h里区分出来,这个头文件是android强制代码中所有的C和C++文件都会包含的一个头文件,里面是控制编译的一些宏。不同的编译目标会引用不同的AndroidConfig.h文件,比如编译host的库时,会引用build\core\combo\include\arch\linux-x86下的AndroidConfig.h,当然前提你的编译环境是linux-x86的,目前基本都是。。。。编译target的库时,如项目目标device是arm平台,那就是build\core\combo\include\arch\linux-arm下的AndroidConfig.h文件。

而在这个头文件中控制property方法编译的是  HAVE_LIBC_SYSTEM_PROPERTIES 和 HAVE_SYSTEM_PROPERTY_SERVER 这两个宏永远是互斥的。

如下:build\core\combo\include\arch\linux-arm\AndroidConfig.h

/** Define if libc includes Android system properties implementation.*/
#define HAVE_LIBC_SYSTEM_PROPERTIES 1/** Define if system provides a system property server (should be* mutually exclusive with HAVE_LIBC_SYSTEM_PROPERTIES).*/
/* #define HAVE_SYSTEM_PROPERTY_SERVER */

 

所以我们使用这个宏来控制编译就可以避免host static sqlite 库编译error。

如下:

#ifdef HAVE_LIBC_SYSTEM_PROPERTIES
#include <cutils/properties.h>
#endif

 

 

转载于:.html

更多推荐

Android KK 找不到cutils/properties.h

本文发布于:2024-02-11 20:25:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1683256.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:找不到   KK   Android   cutils   properties

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!