2012-01-08 2 views
8

Я выполнил инструкции на source.android.com, чтобы создать флеш-память Android, но когда я запускаю команду make, я получаю много ошибок. Я запускаю виртуализованный 32-разрядный Ubuntu 11.04 на vmware под 64-разрядной Windows Vista.Отсутствующие символы для Android на Ubuntu

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/ 

ответ

27

Ниже приведено удаление этих ошибок в моем случае. Нарушение постороннего «/» в конце.

плохо:

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

Это, в конце концов, получилось! Благодаря! – Kostas

+1

Интересно .. Как оба отличаются? с "/" и без "/". – Whoami

+1

ЭТО. СПАСИБО! Я пытался исправить это часами, это сработало! – Dirbaio

0

Рекомендуется строить Android источников с использованием 64-битной Ubuntu Linux. Но я не думаю, что это проблема в вашем случае. Мне кажется, что проблема в JDK. Вы установили версию JDK 6 на свой компьютер?

+0

Да, я добавил JDK – kingston

+0

. Версия JDK составляет 6? И лучше использовать Ubuntu 10.04 64bit для строительства.В противном случае вы должны исправить некоторые файлы, которые будут созданы для 32 бит. – Yury

+0

С версией для 64 бит она работала. Конечно, я не знаю, были ли другие проблемы. – kingston

0

Я тоже столкнулся с этим, и проблема заключалась в том, что мне не хватало некоторых пакетов Ubuntu. Как только я выполнил инструкции в http://source.android.com/source/initializing.html, чтобы установить пакеты, все сработало нормально. Это сбивает с толку, поскольку ошибка в Java, но проблема в ОС.

5

Другой причиной этой ошибки, если вы используете что-то вроде jenv для управления несколькими средами Java. Инструменты сборки Android по умолчанию ищут tools.jar относительно местоположения двоичного файла javac. Если вы используете jenv (или любой другой инструмент, который захватывает javac), это не сработает.

Однако вы можете установить переменную окружения ANDROID_JAVA_HOME, чтобы указать на ваш «настоящий» JDK, и в этом случае инструменты сборки будут выглядеть в $ ANDROID_JAVA_HOME/lib/tools.jar.

1

Следующее было моим исправлением в OSX. Вы должны увидеть, какие JVM у вас есть, и установить его соответствующим образом.

export ANDROID_JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home 
+0

нет необходимости вам добавить каталог bin в это PATH –

9

Чтобы исправить это на OSX, добавьте каталог бен Java в PATH

экспорт PATH =/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Содержание/Главная/бен: $ PATH

PS: папка jdk (jdk.1.7.0_51.jdk) может отличаться для людей, так как она зависит от версии на установленном вами jdk. Просто используйте папку jdk, которую вы установили. Путь к корзине тот же.

+0

Для Yosemite правильная команда теперь: export PATH =/Библиотека/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Содержание/Главная/bin: $ PATH – seeARMS

+0

Я не имею ничего общего с Йосемити. Это действительно означает, что у вас есть другая версия jdk. На него нет правильных ответов, но я уточню свой ответ, чтобы указать, что на всякий случай. Благодарю. –

Смежные вопросы