缺少在Ubuntu上构建Android的符号

kin*_*ton 8 android frameworks build android-source

我按照source.android.com上的说明构建了Android框架,但是当我运行make命令时,我遇到了很多错误.我在64位Windows Vista下运行vmware上的虚拟32位Ubuntu 11.04.

cat /proc/version

Linux version 2.6.38-8-generic (buildd@vernadsky) (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
Run Code Online (Sandbox Code Playgroud)

我使用以下方法选择了全工程目标:

lunch full-eng
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误的部分列表:

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/
Run Code Online (Sandbox Code Playgroud)

小智 27

以下是在我的情况下删除这些错误的原因.最后冒犯了无关的'/'.

坏:

export PATH=/home/rev/BIN/jdk-6u34/jdk1.6.0_34/bin/:$PATH
Run Code Online (Sandbox Code Playgroud)

好:

export PATH=/home/rev/BIN/jdk-6u34/jdk1.6.0_34/bin:$PATH
Run Code Online (Sandbox Code Playgroud)


Sid*_*ati 9

要在OSX上修复此问题,请将Java bin目录添加到PATH

export PATH =/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin:$ PATH

PS:jdk文件夹(jdk.1.7.0_51.jdk)可能因人而异,因为它取决于你安装的jdk上的版本.只需使用您安装的jdk文件夹即可.bin的路径是相同的.


mmi*_*dol 5

导致此错误的另一个原因是您使用jenv之类的东西来管理多个Java环境.默认情况下,Android构建工具会搜索相对于javac二进制文件位置的tools.jar.如果您使用jenv(或任何其他劫持javac的工具),这将无法正常工作.

但是,您可以将环境变量ANDROID_JAVA_HOME设置为指向"真正的"JDK,在这种情况下,构建工具将在$ ANDROID_JAVA_HOME/lib/tools.jar中查找.