Android源码编译常见错误(持续更新)

  本文为个人工作中处理遇到的编译问题做个小结,后续遇到新的问题,持续更新。

 

No such file or directory:

  1. 检查路径是否有问题,文件是否存在,若文件存在且路径没问题
  2. 检查文件的路径目录和文件是否具有可读权限

 

代码中的 error:

  : error: package ....... does not exist
  1. 确认该代码中所用的包名是否正确;
  2. 包名正确的情况,该包所在的jar是否引入,参与编译,查看out/target/common/obj/JAVA_LIBRARIES下是否存在jar包模块名对应的intermediates目录。
  : error: cannot find symbol
  1. 请确认该关键字或类名是否声明,包的引入是否正确;
  2. 如果依赖其他的jar包或者库,确认jar包和库是否正确引入,查看out/target/common/obj/JAVA_LIBRARIES下是否存在jar包模块名对应的intermediates目录。
  : error: unmappable character for encoding UTF-8
  1. 请检查文件的字符集,在UTF-8下打开无乱码,修改代码的字符集;
  2. 或者在Android.mk中加入 LOCAL_JAVACFLAGS := -encoding GBK 来使代码以GBK编码方式编译。
  : error: undefined reference to
  1. 请联系该代码的维护人员检查该符号是否定义或者头文件是否已包含进来
  2. 如果定义在第三方的库中,先去out目录检查第三方库是否参与编译,以及用工具查看第三方库中是否包含该函数

  (代码中的错误大部分由代码语法导致,比较多,持续补充)

 

No Android.mk in .... :
  1. 该目录下没有Android.mk文件,需要该目录的维护人员添加Android.mk;
  2. 检查该路径的档案权限是否可读。

 

Permission denied:
  1. 路径权限有问题,查看该路径对应目录和文件的权限属性

 

make: *** No rule to make target `.......', needed by `......'. Stop. :

  1. 如果前方对应缺失的是动态库,静态库或者jar包,需要先将这些库编译出来;
  2. 如果是第三方的库,需要先将库预编译,才可以依赖;
  3. 检查对应的库的Android.mk中LOCAL_MODULE_TAGS是否与环境统一,否则不参与编译。

  (这个错误在源码编译包括目录编译mmm中非常常见,解决的方法比较杂大都在Android.mk中做修改)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值