编译Android源码时常见问题以及解决方法
2011-10-13 16:36
926 查看
下载Android源码之后,这里以Android 2.3(gingerbread)为例,编译时可能会遇到的一些问题,下面来总结下这些常见的问题以及解决方法。
1.make: *** No rule to make target `run-java-tool', needed by `out/target/common/docs/doc-comment-check-timestamp'. Stop.
这是由于没有设置$ANDROID_JAVA_HOME 造成的,只要设置下ANDROID_JAVA_HOME即可。
解决办法:
执行
export ANDROID_JAVA_HOME=$JAVA_HOME
2.build/core/main.mk:73: You are attempting to build on a 32-bit system.
build/core/main.mk:74: Only 64-bit build environments are supported beyond froyo/2.2.
这是因为Android2.2(froyo)之后默认只支持64-bit。
解决办法:
将
./external/clearsilver/cgi/Android.mk
./external/clearsilver/java-jni/Android.mk
./external/clearsilver/util/Android.mk
./external/clearsilver/cs/Android.mk
这四个文件中的
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
注释掉,或者将“64”换成“32”
LOCAL_CFLAGS += -m32
LOCAL_LDFLAGS += -m32
然后,将
./build/core/main.mk 中的
ifneq (64,$(findstring 64,$(build_arch)))
改为:
ifneq (i686,$(findstring i686,$(build_arch)))
即可。
3.make: *** [out/target/product/generic/obj/lib/crtbegin_dynamic.o] Error 1
这是在32位Linux上编译引起的arm-eabi-4.4.3版本问题,所以需要修改,这里我们使用arm-eabi-4.4.0版本编译器,建立一个软链接。
解决办法:
在./prebuilt/linux-x86/toolchain中执行
$ mv arm-eabi-4.4.3 arm-eabi-4.4.3.old
$ ln -s arm-eabi-4.4.0 arm-eabi-4.4.3
即可。
4.make: *** [out/target/product/generic/obj/EXECUTABLES/BufferQueue_test_intermediates/LINKED/BufferQueue_test] Error 1
解决办法:
把system/media/opensles/libopensles目录下的IAndroidEffect.c改为IAndroidEffect.cpp,并且把Android.mk中的内容“IAndroidEffect.c”也一并修改为”IAndroidEffect.cpp“。
1.make: *** No rule to make target `run-java-tool', needed by `out/target/common/docs/doc-comment-check-timestamp'. Stop.
这是由于没有设置$ANDROID_JAVA_HOME 造成的,只要设置下ANDROID_JAVA_HOME即可。
解决办法:
执行
export ANDROID_JAVA_HOME=$JAVA_HOME
2.build/core/main.mk:73: You are attempting to build on a 32-bit system.
build/core/main.mk:74: Only 64-bit build environments are supported beyond froyo/2.2.
这是因为Android2.2(froyo)之后默认只支持64-bit。
解决办法:
将
./external/clearsilver/cgi/Android.mk
./external/clearsilver/java-jni/Android.mk
./external/clearsilver/util/Android.mk
./external/clearsilver/cs/Android.mk
这四个文件中的
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
注释掉,或者将“64”换成“32”
LOCAL_CFLAGS += -m32
LOCAL_LDFLAGS += -m32
然后,将
./build/core/main.mk 中的
ifneq (64,$(findstring 64,$(build_arch)))
改为:
ifneq (i686,$(findstring i686,$(build_arch)))
即可。
3.make: *** [out/target/product/generic/obj/lib/crtbegin_dynamic.o] Error 1
这是在32位Linux上编译引起的arm-eabi-4.4.3版本问题,所以需要修改,这里我们使用arm-eabi-4.4.0版本编译器,建立一个软链接。
解决办法:
在./prebuilt/linux-x86/toolchain中执行
$ mv arm-eabi-4.4.3 arm-eabi-4.4.3.old
$ ln -s arm-eabi-4.4.0 arm-eabi-4.4.3
即可。
4.make: *** [out/target/product/generic/obj/EXECUTABLES/BufferQueue_test_intermediates/LINKED/BufferQueue_test] Error 1
解决办法:
把system/media/opensles/libopensles目录下的IAndroidEffect.c改为IAndroidEffect.cpp,并且把Android.mk中的内容“IAndroidEffect.c”也一并修改为”IAndroidEffect.cpp“。
相关文章推荐
- ubantu17.04 编译android 遇到的问题以及解决方法
- 非官网下载的android 源码编译问题 及解决方法
- 编译android源码提示/usr/bin/jar命令不存在问题的解决方法
- 在Android下编译ffmpeg+x264+libfdk-aac的常见问题和解决方法
- Cocos2dx编译到android遇到的一个坑爹问题以及解决方法
- [Android环境搭建错误解决三]Android4.0.4源码编译常见错误及解决方法
- Android 源码编译及常见错误及解决方法
- Android源码编译JNI遇到的问题与解决方法
- 在fedora10下编译android以及常见问题解决
- Hadoop使用常见问题以及解决方法5
- Android项目源码混淆问题解决方法
- Ubuntu中编译Android JellyBean 4.2.1源码出现Switch.pm出错信息的解决方法
- Hadoop使用常见问题以及解决方法 (转)
- Android介绍以及源码编译--常见编译错误
- 【JAVA学习】总结classpath常见问题以及解决方法
- [转]Android项目源码混淆问题解决方法
- android源码编译出现No private recovery resources for TARGET_DEVICE解决方法
- [Android开发常见问题-11] Unable to execute dex: Multiple dex files define 解决方法
- 【android】从源码分析调用ViewPager的notifyDataSetChanged无刷新的问题及解决方法
- android源码编译常见问题