在Ubuntu上构建Android的符号缺失符号
我按照source.android.com的说明构建了Android框架,但是当我运行make
命令时,出现很多错误。我在64位Windows Vista下运行vmware上的虚拟化32位Ubuntu 11.04。在Ubuntu上构建Android的符号缺失符号
cat /proc/version
说
Linux version 2.6.38-8-generic ([email protected]) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu3)) #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011
我以同步的一切:
repo init -u https://android.googlesource.com/platform/manifest
repo sync
,我通过使用选择了全工程目标:
lunch full-eng
这是我得到的错误的部分列表:
PLATFORM_VERSION_CODENAME=AOSP
PLATFORM_VERSION=4.0.3.0.2.0.1.0
TARGET_PRODUCT=full
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=OPENMASTER
OUT_DIR=out
/bin/bash: line 0: cd: cts/tools/cts-native-xml-generator/src/res: No such file or directory
host Java: doclava (out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes)
external/doclava/src/com/google/doclava/ClassInfo.java:20: package com.sun.javadoc does not exist
import com.sun.javadoc.ClassDoc;
^
external/doclava/src/com/google/doclava/ClassInfo.java:62: cannot find symbol
symbol : class ClassDoc
location: class com.google.doclava.ClassInfo
public ClassInfo(ClassDoc cl, String rawCommentText, SourcePositionInfo position,
^
external/doclava/src/com/google/doclava/PackageInfo.java:21: package com.sun.javadoc does not exist
import com.sun.javadoc.*;
^
external/doclava/src/com/google/doclava/ClassInfo.java:1406: cannot find symbol
symbol : class ClassDoc
location: class com.google.doclava.ClassInfo
private ClassDoc mClass;
^
external/doclava/src/com/google/doclava/PackageInfo.java:33: cannot find symbol
symbol : class PackageDoc
location: class com.google.doclava.PackageInfo
public PackageInfo(PackageDoc pkg, String name, SourcePositionInfo position) {
^
external/doclava/src/com/google/doclava/PackageInfo.java:185: cannot find symbol
symbol : class PackageDoc
location: class com.google.doclava.PackageInfo
private PackageDoc mPackage;
^
external/doclava/src/com/google/doclava/apicheck/XmlApiFile.java:28: package com.sun.javadoc does not exist
import com.sun.javadoc.ClassDoc;
^
external/doclava/src/com/google/doclava/Converter.java:19: package com.sun.javadoc does not exist
import com.sun.javadoc.*;
^
external/doclava/
下面是在我的情况下删除了这些错误。最后一个有害的'/'。
不好:
export PATH=/home/rev/BIN/jdk-6u34/jdk1.6.0_34/bin/:$PATH
好:
export PATH=/home/rev/BIN/jdk-6u34/jdk1.6.0_34/bin:$PATH
我也遇到过这个问题,我错过了一些Ubuntu软件包。一旦我按照http://source.android.com/source/initializing.html中的说明安装软件包,事情就很好。 这是令人困惑的,因为错误是在Java中,但问题在于操作系统。
这个错误的另一个原因是,如果你使用的是像jenv东西来管理多个Java环境。默认情况下,Android构建工具会搜索相对于javac二进制文件位置的tools.jar。如果您使用的是jenv(或任何劫持javac的其他工具),则这不起作用。
但是,您可以将环境变量ANDROID_JAVA_HOME设置为指向您的“真实”JDK,在这种情况下,构建工具将在$ ANDROID_JAVA_HOME/lib/tools.jar中查找。
以下是我在OSX中的修复。您必须查看您拥有的JVM并进行适当设置。
export ANDROID_JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
nope你需要它添加他bin目录到该路径 – 2014-12-11 17:02:31
为了解决这个问题的OSX,添加Java bin目录到PATH
出口PATH = /图书馆/的Java/JavaVirtualMachines/jdk1.7.0_51.jdk /内容/首页/斌:$ PATH
PS:jdk文件夹(jdk.1.7.0_51.jdk)可能因人而异,因为它取决于您安装的jdk上的版本。只需使用已安装的jdk文件夹即可。 bin的路径是相同的。
对于优胜美地,正确的命令是: export PATH =/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin:$ PATH – seeARMS 2016-06-23 20:10:11
我和优胜美地没有任何关系。这真的意味着你有不同的jdk版本。有没有正确的答案,但我会更新我的答案表明,以防万一。谢谢。 – 2016-06-27 16:55:18
终于做到了!谢谢! – Kostas 2012-09-25 18:01:36
有趣..两者有何不同?带“/”,没有“/”。 – Whoami 2014-03-27 15:00:36
这个。谢谢!我一直在努力解决这个问题,这工作! – Dirbaio 2014-09-23 11:48:57