九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 5321|回复: 9
打印 上一主题 下一主题

编译android4.4系统出现问题,请帮忙看下,谢谢!!

[复制链接]
跳转到指定楼层
楼主
发表于 2015-8-19 22:03:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从百度网盘上下载了android4.4的源码x4412_kitkat_rtm.tar.bz2,通过工具解压后进行编译,./mk -s编译system.img镜像时发生错误后异常退出,请帮忙分析一下,谢谢!!

编译系统日志.zip

4.61 KB, 下载次数: 3

android4.4编译BUG日志

回复

使用道具 举报

沙发
发表于 2015-8-20 16:24:28 | 只看该作者
有时候出错,直接再make一下

纯从这个LOG,比较难分析问题所在
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2015-8-22 23:54:56 | 只看该作者
armeasy 发表于 2015-8-20 16:24
有时候出错,直接再make一下

纯从这个LOG,比较难分析问题所在

我尝试了一下两种方案都不可以
方案一: 重新使用mk脚本编译,多次编译无法解决问题
方案二:执行. build/envsetup.sh 然后再make clean;make -j4
直接手动执行,还是会卡在同一个地方
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2015-8-23 13:44:52 | 只看该作者
终于找到解决方案:
需要配置javap的环境变量
sudo update-alternatives --config javap 查看指向,选择合适的版本,如果不存在,则添加javap
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.6.0_45/bin/javap 300
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2015-8-23 13:46:33 | 只看该作者
继续编译,出现下面错误:
Import includes file: out/target/product/generic/obj/EXECUTABLES/surfaceflinger_intermediates/import_includes
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/Client.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/DisplayDevice.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/DispSync.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/EventControlThread.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/EventThread.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/FrameTracker.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/Layer.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/LayerDim.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/MessageQueue.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/SurfaceFlingerConsumer.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/SurfaceTextureLayer.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/Transform.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/DisplayHardware/PowerHAL.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/Effects/Daltonizer.cpp
frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp: In member function 'int android::HWComposer::fbPost(int32_t, const android::sp<android::Fence>&, const android::sp<android::GraphicBuffer>&)':
frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp:820:9: error: 'SecHdmiClient' is not a member of 'android'
frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp:820:33: error: 'mHdmiClient' was not declared in this scope
frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp:820:56: error: 'android::SecHdmiClient' has not been declared
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libsurfaceflinger_intermediates/DisplayHardware/HWComposer.o] 错误 1
make: *** 正在等待未完成的任务....

这是源代码有问题吗?
回复 支持 反对

使用道具 举报

6#
发表于 2015-8-23 13:53:56 | 只看该作者
java版本要用1.6
gcc版本要用4.4

不用怀疑源码问题,大家都用的这个编译的
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2015-8-24 09:25:11 | 只看该作者
我已经按照文档说的将jdk版本改为1.6,gcc版本降为4.4,但是编译错误还是一样的
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2015-8-25 10:56:53 | 只看该作者
解决了一连串的问题,源码编译大约进行了6个小时,在out/release/下产生了一连串的镜像文件(包括system.img,boot.img,ramdisk-uboot.img),但是最后还是有错误生成,日志如下:
make[1]: Leaving directory `/home/sxx/Exynos4412/Android4.4/buildroot/support/kconfig'
#
# configuration written to /home/sxx/Exynos4412/Android4.4/buildroot/.config
#
/usr/bin/make -j8  HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" silentoldconfig
make[1]: Entering directory `/home/sxx/Exynos4412/Android4.4/buildroot'
BR2_DEFCONFIG='' KCONFIG_AUTOCONFIG=/home/sxx/Exynos4412/Android4.4/buildroot/output/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/home/sxx/Exynos4412/Android4.4/buildroot/output/build/buildroot-config/autoconf.h KCONFIG_TRISTATE=/home/sxx/Exynos4412/Android4.4/buildroot/output/build/buildroot-config/tristate.config BUILDROOT_CONFIG=/home/sxx/Exynos4412/Android4.4/buildroot/.config /home/sxx/Exynos4412/Android4.4/buildroot/output/build/buildroot-config/conf --silentoldconfig Config.in
make[1]: Leaving directory `/home/sxx/Exynos4412/Android4.4/buildroot'
mkdir -p /home/sxx/Exynos4412/Android4.4/buildroot/output/target
if ! [ -d "/home/sxx/Exynos4412/Android4.4/buildroot/output/target/bin" ]; then \
                if [ -d "/home/sxx/Exynos4412/Android4.4/buildroot/system/skeleton" ]; then \
                        cp -fa /home/sxx/Exynos4412/Android4.4/buildroot/system/skeleton/* /home/sxx/Exynos4412/Android4.4/buildroot/output/target/; \
                fi; \
        fi
cp support/misc/target-dir-warning.txt /home/sxx/Exynos4412/Android4.4/buildroot/output/target/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM
find /home/sxx/Exynos4412/Android4.4/buildroot/output/target -type d -name CVS -print0 -o -name .svn -print0 | xargs -0 rm -rf
find /home/sxx/Exynos4412/Android4.4/buildroot/output/target -type f \( -name .empty -o -name '*~' \) -print0 | xargs -0 rm -rf
touch /home/sxx/Exynos4412/Android4.4/buildroot/output/build/.root

You seem to have the current working directory in your
PATH environment variable. This doesn't work.
回复 支持 反对

使用道具 举报

9#
发表于 2015-8-25 11:14:17 | 只看该作者
你这是编译linux文件系统的提示信息,你看一下在buildroot/image中是否已经生成rootfs.ext2,如果有,表明linux文件系统已经生成了。
如果你用的android,没必要执行./mk -b,这些你直接可以忽略不管。
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2015-8-25 21:11:19 | 只看该作者
在源码编译成功以后,我试着单独编译external中的某一个模块,执行流程如下
1、. build/envsetup.sh
2、 mmm external/jpeg/
日志如下:
============================================
make:进入目录'/home/sxx/Exynos4412/Android4.4'
make: *** 没有规则可以创建“out/target/product/generic/obj/STATIC_LIBRARIES/libjpeg_static_intermediates/import_includes”需要的目标“out/target/product/generic/obj/SHARED_LIBRARIES/libc_intermediates/export_includes”。 停止。
make:离开目录“/home/sxx/Exynos4412/Android4.4”

预期应该可以编译成功的,不知是什么回事。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-5-6 00:38 , Processed in 0.024695 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表