Android import_includes export_includes
完整的错误:xxx/obj/SHARED_LIBRARIES/yyy_intermediates/import_includes需要的目标xxx/obj/STATIC_LIBRARIES/zzz_intermediates/export_includes
出现这个问题不是在编译系统的时候出现的,是在编译一个应用程序的时候出现的。应用程序A有点特殊,用到了一个静态库B.a。直接编译A会去B的中间目录$OUT/obj/STATIC_LIBRARIES/B_intermediates/去找export_includes ,这个在升级到android4.2.2的时候遇到的,4.0.3的时候没有。4.0.3的时候会到$OUT/obj/STATIC_LIBRARIES/B_intermediates/中找B.a,然后我手动将B.a放到里边就行了(当时觉得手动放入并不是一个好的方法)。但是现在的4.2.2会先找export_includes,去其他库目录中找export_includes会发现其是一个空文件,于是新建一个空文件命名为export_includes后和B.a一同放入$OUT/obj/STATIC_LIBRARIES/B_intermediates/程序A编译链接成功。
手动放入$OUT目录文件不是一个好的方法,趁此机会要解决这个问题。找了一下Android对于这种已经存在的库的处理方法是在新建立一个lib目录,其中建立一个Android.mk内容如下:
LOCAL_PATH := $(call my-dir)
$(call add-prebuilt-files, STATIC_LIBRARIES, B.a)
(关于add-prebuilt-files的更多使用看参考文档)
将B.a和这个Android.mk一起放入到新建的lib目录。在其中运行mm。可以发现会自动将当前目录下的B.a拷贝到$OUT/obj/STATIC_LIBRARIES/B_intermediates/并生成了需要的export_includes。
再编译A程序可以无误的链接了。为了把B.a和A程序放到一起可以这个lib目录和A程序所在的A目录一起放到新的A_zong目录。在A_zong中新建一个Android.mk内容如下:
include $(call all-subdir-makefiles)
A_zong下的目录结构是这样的:
├── Android.mk
├── lib
│   ├── Android.mk
│   └── B.a
└── A
├── Android.mk
├── a.c
└── a.h
这样就可以当成一个普通的程序放到源码的app源码位置,整体编译的时候会自动编译A_zong.

Android import includes export includes相关推荐

  1. ES6 模块加载export 、import、export default 、import() 语法与区别,笔记总结

    ES6模块加载export .import.export default .import() 语法与区别 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种. ...

  2. 使用es6中import和export报错

    在学习import和export时,写了一个小demo进行测试 //index.html<script> import test from './test.js' test() </ ...

  3. import export php,import与export在node.js中的使用方法

    import与export是es6中模块化的导入与导出,node.js现阶段不支持,需要通过babel进行编译,使其变成node.js的模块化代码.(关于node.js模块,可参考其他node.js模 ...

  4. js模块化:require、import和export

    前言 编写js模块必须要搞懂import和export的关系 Google Chrome 84.0.4147.135 (正式版本) (64 位) (cohort: Stable Installs On ...

  5. 工作373-前端 import与export区别

    import与export区别 1.当用export default people导出时,就用 import people 导入(不带大括号) 2.一个文件里,有且只能有一个export defaul ...

  6. 汇编里的IMPORT和EXPORT

    IMPORT ,定义表示这是一个外部变量的标号,不是在本程序定义的 EXPORT ,表示本程序里面用到的变量提供给其他模块调用的. 以上两个在汇编和C语言混合编程的时候用到 刚看到一篇不错的BLOG, ...

  7. 【彻底搞清楚javascript中的require、import和export 】

    彻底搞清楚javascript中的require.import和export - 最骚的就是你 - 博客园

  8. react 中使用import()实现按需加载报错 解决方法 --‘import’ and ‘export’ may only appear at the top level

    react 中使用import()实现按需加载报错 解决方法 --'import' and 'export' may only appear at the top level 参考文章: (1)rea ...

  9. import和export在浏览器中的使用方式

    import和export在浏览器中的使用方式 一般情况下,import 和 export 的使用通常是在 webpack.Vite 等构建工具中已模块的形式使用,而想在浏览器中直接使用,则需要通过一 ...

最新文章

  1. 「ImageProcess」mp4视频转存图片内存变大的原因探究
  2. Schedulerx2.0工作流支持数据传输
  3. Thinkpad T61/R61/X61安装XP驱动流程
  4. Python保留字,keyword
  5. 分治比赛选手循环问题
  6. vim 与 ascii 码表与可显示字符
  7. 什么时候用DFS,什么时候用BFS?(DFS和BFS的特点和异同)
  8. 广东中学计算机课可教什么,广东实验中学课程设置如何?有什么特色?
  9. 信号处理 | 维纳滤波推导
  10. Java interviewee-基础知识《一》
  11. 计算机试图启动宏,打开电子表格时,将提示禁用或启用宏的解决方案
  12. win10 休眠不读u盘_win10电脑不读u盘如何修复
  13. 我们如何学习:学会学习再学习
  14. 5、passcode
  15. python第三方库re库实例之爬取古诗词网上诗歌
  16. CentOS 7.5 安装Tomcat教程
  17. 信道检测手机软件 ios_一分钟,教你检测iPhone硬件故障
  18. 敏捷团队要有一个《伊凡卡目标》——计划会的共识和每日站会的焦点
  19. win10ltsc安装后重启提示bitlocker有问题怎么办_TIA Portal博途常见的15大问题汇总
  20. Fusion Compute计算虚拟化

热门文章

  1. 局域网中最常见的十大错误及解决方法
  2. 使用Python写的CRC计算工具
  3. Android多种方式实现相机圆形预览 看这一篇就够了,Android开发面试书籍
  4. element message box 确认消息,怎么改变确定和取消的位置?
  5. Python模糊控制库使用(基本操作与仿真结果3D显示)
  6. 威纶通触摸屏技巧总结
  7. java无法从静态上下文_java - “非静态方法无法从静态上下文中引用”背后的原因是什么?...
  8. 学会制作html营销邮件,如何制作图文并茂的HTML邮件,做好EDM营销
  9. 汉字简体与繁体互相转换
  10. ②(常识篇)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)