source - Símbolos faltantes de Android en Ubuntu
project android source (6)
Se recomienda construir fuentes de Android utilizando Ubuntu Linux de 64 bits. Pero no creo que esto sea un problema en tu caso. Me parece que el problema en JDK. ¿Has instalado la versión JDK 6 en tu máquina?
Seguí las instrucciones en source.android.com para construir el framework Android, pero cuando ejecuto el comando make
recibo muchos errores. Estoy ejecutando un Ubuntu 11.04 de 32 bits virtualizado en vmware en un Windows Vista de 64 bits.
cat /proc/version
dice
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
He sincronizado todo usando:
repo init -u https://android.googlesource.com/platform/manifest
repo sync
y elegí el objetivo de ingeniería completa al usar:
lunch full-eng
Esta es una lista parcial de los errores que recibo:
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/
Me encontré con esto también, y el problema era que me faltaban algunos paquetes de Ubuntu. Una vez que seguí las instrucciones en http://source.android.com/source/initializing.html para instalar los paquetes, las cosas funcionaron bien. Es confuso ya que el error está en Java, pero el problema está en el sistema operativo.
A continuación se muestra qué eliminó estos errores en mi caso. Un ''/'' extraño ofensivo al final.
malo:
export PATH=/home/rev/BIN/jdk-6u34/jdk1.6.0_34/bin/:$PATH
Bueno:
export PATH=/home/rev/BIN/jdk-6u34/jdk1.6.0_34/bin:$PATH
Otra causa de este error es si está utilizando algo como jenv para administrar múltiples entornos Java. Las herramientas de compilación de Android, de forma predeterminada, buscan tools.jar relativo a la ubicación del binario javac. Si está usando jenv (o cualquier otra herramienta que secuestra javac), esto no funcionará.
Sin embargo, puede configurar la variable de entorno ANDROID_JAVA_HOME para que apunte a su JDK "real", en cuyo caso las herramientas de compilación aparecerán en $ ANDROID_JAVA_HOME / lib / tools.jar.
La siguiente fue mi solución en OSX. Tienes que ver qué JVM tienes y configurarlo de manera adecuada.
export ANDROID_JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
Para solucionar esto en OSX, agregue el directorio bin de Java a PATH
export PATH = / Library / Java / JavaVirtualMachines / jdk1.7.0_51.jdk / Contents / Home / bin: $ PATH
PD: La carpeta jdk (jdk.1.7.0_51.jdk) puede ser diferente para las personas, ya que depende de la versión en jdk que haya instalado. Simplemente use la carpeta jdk que ha instalado. El camino a bin es el mismo.