2012-01-08 14 views
8

Seguí las instrucciones en source.android.com para construir el marco 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.Símbolos perdidos que construyen Android en Ubuntu

cat /proc/version

dice

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

de sincronizar todo mediante el uso de:

repo init -u https://android.googlesource.com/platform/manifest 
repo sync 

y elegí la meta de la ingeniería completa mediante el uso de:

lunch full-eng 

Ésta es una lista parcial de los errores que consigo:

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/ 

Respuesta

27

A continuación se muestra lo que 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 
+1

¡Eso finalmente lo hizo! ¡Gracias! – Kostas

+1

Interesante .. ¿En qué difieren ambos? con y sin "/". – Whoami

+1

ESTO. ¡GRACIAS! He estado tratando de arreglar esto por horas, ¡funcionó! – Dirbaio

0

Se recomienda construir fuentes de Android con Ubuntu de 64 bits de Linux. 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?

+0

Sí, agregué el JDK – kingston

+0

La versión de JDK es 6? Y es mejor usar Ubuntu 10.04 64 bits para construir.De lo contrario, debe corregir algunos archivos que se construirán para 32 bits. – Yury

+0

Con la versión para 64 bits funcionó. Por supuesto que no sé si hubo otros problemas – kingston

0

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 SO.

5

Otra causa de este error si está utilizando algo así como jenv para gestionar 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 a 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.

1

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 
+0

no lo necesitas, agrega el directorio de bin a esa RUTA –

9

Para solucionar este en OSX, agregar el directorio bin de Java para PATH

export PATH =/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contenidos/Inicio/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.

+0

Para Yosemite, el comando correcto es ahora: exportación PATH =/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin: $ PATH – seeARMS

+0

No tengo nada que ver con Yosemite. Eso solo significa que tienes una versión jdk diferente. No hay respuestas correctas, pero actualizaré mi respuesta para indicarlo, por las dudas. Gracias. –

Cuestiones relacionadas