错误1: 注意:external/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java 使用了未经检查或不安全的操作。 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。注意:external/protobuf/java/src/main/java/com/google/protobuf/micro/CodedInputStreamMicro.java 使用了未经检查或不安全的操作。 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。 Generated: (out/target/product/generic/android-info.txt) host C: acp <= build/tools/acp/acp.c host C++: libhost <= build/libs/host/pseudolocalize.cpp host C: libhost <= build/libs/host/CopyFile.c <命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用] <built-in>:0:0: 附注: 这是先前定义的位置 <命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用] <built-in>:0:0: 附注: 这是先前定义的位置 In file included from build/libs/host/CopyFile.c:11:0: build/libs/host/include/host/CopyFile.h:5:22: 致命错误: sys/stat.h:没有那个文件或目录 编译中断。 In file included from /usr/include/stdlib.h:25:0, from build/tools/acp/acp.c:11: /usr/include/features.h:323:26: 致命错误: bits/predefs.h:没有那个文件或目录 编译中断。 make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/CopyFile.o] 错误 1 make: *** 正在等待未完成的任务.... make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1 <命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用] <built-in>:0:0: 附注: 这是先前定义的位置 In file included from /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/os_defines.h:40:0, from /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/c++config.h:392, from /usr/include/c++/4.6/string:40, from build/libs/host/include/host/pseudolocalize.h:4, from build/libs/host/pseudolocalize.cpp:1: /usr/include/features.h:323:26: 致命错误: bits/predefs.h:没有那个文件或目录 编译中断。 make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/pseudolocalize.o] 错误 1
注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。 注意:某些输入文件使用了未经检查或不安全的操作。 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。 解决方法:sudo apt-get install libc6-dev-i386 http://www./ZircoN/archive/2011/11/13/363452.html 错误2: frameworks/base/libs/utils/RefBase.cpp:483:67: 错误: 将‘const android::RefBase::weakref_impl’作为‘void android::RefBase::weakref_impl::trackMe(bool, bool)’的‘this’实参时丢弃了类型限定 [-fpermissive] make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] 错误 1 make: *** 正在等待未完成的任务.... frameworks/base/libs/utils/ResourceTypes.cpp: 在成员函数‘void android::ResTable::print(bool) const’中: frameworks/base/libs/utils/ResourceTypes.cpp:4369:84: 警告: 将一个整数转换为大小不同的指针 [-Wint-to-pointer-cast] frameworks/base/libs/utils/ResourceTypes.cpp:4375:43: 警告: 将一个整数转换为大小不同的指针 [-Wint-to-pointer-cast] 参考网上的解决方法:$ gedit frameworks/base/libs/utils/Android.mk 将下面一行 LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) 改成 LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissive http://www./ZircoN/archive/2011/11/13/363452.html 问题并没有解决,反而又出现了新的错误: host C++: libutils <= frameworks/base/libs/utils/Asset.cppg++: –fpermissive:没有那个文件或目录 注意:某些输入文件使用或覆盖了已过时的 API。 注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。 注意:某些输入文件使用了未经检查或不安全的操作。 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。 make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/Asset.o] 错误 1 make: *** 正在删除文件“out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/Asset.o” make: *** 正在等待未完成的任务.... 这个错误主要是gcc版本过高引起的:最终解决办法是: http://hi.baidu.com/designhouse/blog/item/fec5cdbf8d6a231618d81fc1.html) ubuntu 11.10的gcc版本是4.6.1,版本太高,编译android时出错,要把gcc版本改为4.4.3。 通过gcc -v命令可以发现gcc库在/usr/lib/gcc/i686-linux-gnu目录下,该目录下有当前系统支持的各种版本gcc库 。在安装gcc 4.4前该目录下是没有4.4目录的,安装gcc 4.4后该目录下就会多出4.4这个目录,且该4.4目录下有各种相应库文件。 ubuntu 32bit系统下安装gcc 4.4的最好方法是仅用以下两条命令,不需要其它命令,否则编译时可能会出错。 sudo apt-get install gcc-4.4 sudo apt-get install g++-4.4
装完后在/usr/bin目录下
$ ls -l gcc* lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6 -rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4 -rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6 发现gcc 链接到gcc-4.6, 需要将它改为链接到gcc-4.4 :
sudo mv gcc gcc.bak sudo ln -s gcc-4.4 gcc $ls -l g++* sudo -s mv g++-4.4 g++ g++ -v
错误3: selected multilib '32' not installed make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] 错误 1 make: *** 正在等待未完成的任务.... make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] 错误 1 解决方法: 输入:sudo apt-get install gcc-multilib sudo apt-get install g++-multilib后出现新问题:
g++: selected multilib '32' not installedselected multilib '32' not installed selected multilib '32' not installed make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] 错误 1 make: *** 正在等待未完成的任务.... make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] 错误 1 make: *** [out/host/linux-x86/obj/lib/libfst.so] 错误 1 解决方法
sudo apt-get install libc6-dev ia32-libs lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils sudo apt-get install g++-4.4-multilib 错误4:
Could not load 'clearsilver-jni' java.library.path = out/host/linux-x86/lib Could not load 'clearsilver-jni' java.library.path = out/host/linux-x86/lib make: *** [out/target/common/docs/api-stubs-timestamp] 错误 45 make: *** 正在等待未完成的任务.... make: *** [out/target/common/docs/doc-comment-check-timestamp] 错误 45 解决方法: 这是由于clearsilver 在编译时如果检测到使用Java JDK 6,就使用64位编译。要避开此错误,需要修改下面四个文件: 错误5: emulator NAND: could not write file system.img, File exists
|
|
来自: Sundy工作室 > 《android编译》