基于SnapDragonBoard410c源码编译问题
2018-01-16 10:20
429 查看
当我们从高通的网站上面拉取最新的410c代码时我们可能会遇到以下几种问题我总结了下分为以下集中问题主要的问题是由于ubuntu 系统和内存导致,代码无法通过编译。
一.clang: error: linker command failed with exit code
二.编译L时回报错:recipe commences before first targe
三.出现AssertionError错误
解决办法如下:
四.针对android 选择user版本进行编译的时候,会出现proguard错误,我们需要知道的事情
1.proguard是做什么的,他的作用是将java代码进行混淆的工具
2.因为proguard是混淆工具,所以android的mk文件也对其支持为两种方式:
1.指定不需要混淆的native方法与变量的proguard.flags文件
如:LOCAL_PROGUARD_FLAG_FILES := proguard.flags
2.制定编译的工程,不要使用代码混淆的工具进行代码混淆
如:LOCAL_PROGUARD_ENABLED := disabled
3.不设置,默认使用LOCAL_PROGUARD_ENABLED := full.即将该工程代码全部混淆
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在Android项目中用到JNI,当用了proguard后,发现native方法找不到很多变量,原来是被produard优化掉了。所以,在JNI应用中该慎用progurad啊。
解决办法:
1、在Android.mk中加入一行:
LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags
2、创建proguard.flag文件,里面写入不需要proguard优化的类和方法。例如:
-keep class oms.miracle.mobiletv.broadcast.ServiceContext {
*;
}
五.frameworks/policies/base/PolicyConfig.mk:22: * No module defined for the given PRODUCT_POLICY (android.policy_phone). Stop.
六..frameworks/base/tools/aidl/AST.cpp:10: error: ‘fprintf’ was not declared in this scope的错误
一.clang: error: linker command failed with exit code
解决方法一般是将art/build/Android.common_build.mk文件ifneq ($(WITHOUT_HOST_CLANG),true)改为ifeq ($(WITHOUT_HOST_CLANG),false)
二.编译L时回报错:recipe commences before first targe
gnu make 3.8.1是为android编译修改过或者是优化过的, 所以新版本的ubuntu上用的是更高版本的gnu make , 所以导致在编译时出问题。
三.出现AssertionError错误
解决办法如下:
export JACK_JAR=./out/host/linux-x86/framework/jack.jar ./out/host/linux/x86/bin/jack-admin stop-server ./out/host/linux/x86/bin/jack-admin start-server
四.针对android 选择user版本进行编译的时候,会出现proguard错误,我们需要知道的事情
1.proguard是做什么的,他的作用是将java代码进行混淆的工具
2.因为proguard是混淆工具,所以android的mk文件也对其支持为两种方式:
1.指定不需要混淆的native方法与变量的proguard.flags文件
如:LOCAL_PROGUARD_FLAG_FILES := proguard.flags
2.制定编译的工程,不要使用代码混淆的工具进行代码混淆
如:LOCAL_PROGUARD_ENABLED := disabled
3.不设置,默认使用LOCAL_PROGUARD_ENABLED := full.即将该工程代码全部混淆
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在Android项目中用到JNI,当用了proguard后,发现native方法找不到很多变量,原来是被produard优化掉了。所以,在JNI应用中该慎用progurad啊。
解决办法:
1、在Android.mk中加入一行:
LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags
2、创建proguard.flag文件,里面写入不需要proguard优化的类和方法。例如:
-keep class oms.miracle.mobiletv.broadcast.ServiceContext {
*;
}
五.frameworks/policies/base/PolicyConfig.mk:22: * No module defined for the given PRODUCT_POLICY (android.policy_phone). Stop.
在build/tools/findleaves.sh中的第89行, 这一句find "${@:0:$nargs}" $findargs -type f -name "$filename" -print | 改为find "${@:1:$nargs-1}" $findargs -type f -name "$filename" -print |
六..frameworks/base/tools/aidl/AST.cpp:10: error: ‘fprintf’ was not declared in this scope的错误
下载gcc-4.3和g++-4.3 apt-get install gcc-4.3 g++-4.3 因为ubuntu 9.10自带到是gcc 4.4,因此需要重新下载gcc 4.3,最后设置gcc软连接到gcc 4.3 进入/usr/bin cd /usr/bin 建个软连接 ln -s gcc-4.3 gcc ln -s g++-4.3 g++ 然后进入android目录下,执行make,就可以了。 主线代码则没有此问题 7.在模拟器上运行编译好的android 编译好android之后,emulator在~/android/out/host/linux-x86/bin 下,ramdisk.img,system.img和userdata.img则在~/android/out/target/product /generic下 $ cd ~/android/out/host/linux-x86/bin 增加环境变量 $ emacs ~/.bashrc 在.bashrc中新增环境变量,如下 #java 程序开发/运行的一些环境变量 export ANDROID_PRODUCT_OUT=~/android/out/target/product/g eneric ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x 86/bin export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_ PRODUCT_OUT}; 最后,同步这些变化: $ source ~/.bashrc $ cd ~/android/out/target/product/generic $ emulator -system system.img -data userdata.img -ramdisk ramdisk.img
相关文章推荐
- 安卓系统源码编译系列(七)——单独编译WebView兼容性问题解决
- linux下源码编译 subversion(SVN)- 解决ra_dav模块加载问题(HTTP)
- apue 源码编译问题
- linux android 下源码编译问题总结(一)
- Linux—android源码编译问题
- android 源码编译 问题 列表
- centos7.3实现基于源码编译安装LAMP的wordpress应用
- 基于ROS的服务机器人移植过程编译问题汇总
- 手把手教大家编译debian源码以及安装系统---基于dragonboard410c
- Android 5.0源码编译问题
- 关于android源码中的APP编译时引用隐藏的API出现的问题
- openCV源码Cmake编译后,VS build报错问题解决
- android源码编译常见问题
- android 源码编译及其运行模拟器相关问题记录
- ubuntu12.04 64bit 编译android源码时遇到的问题
- 在android源码中单独编译modkoid工程遇见的问题
- Unix NetWork Programming(unix环境编程)——环境搭建(解决unp.h等源码编译问题)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Unix NetWork Programming——例程 (解决unp.h等源码编译问题)
- unix网络编程源码编译问题