Eclipse: java.lang.NoClassDefFoundError для классов JDK в проекте Android

Во-первых, я хочу упомянуть, что я прочиталмного StackOverflow сообщения оNoClassDefFoundErrorи я тоже читал об этом вмного другие блоги и сайты, но предлагаемые людьми решения неэто исправить.

я бегуEclipse 64-bit с версией плагина ADT v21.0.1-543035 наUbuntu 12.10 64-bit, Все 64-битное, Ubuntu, Eclipse и JRE и JDK, которые я использую (jdk1.6.0_38).

Я написал очень маленькое приложение для Android, для работы которого нужен класс из JDK.

Я немного изолировал проблему и воссоздал ее, создав новую "Android Application Project » сТОЛЬКО ОДНА ЛИНИЯ МОЕГО КОДА (в основном классе в методе onCreate). Эта строка:

BufferedImage buff = new BufferedImage (100,100, BufferedImage.TYPE_INT_RGB);

Eclipse автоматически добавляет необходимый импорт:

import java.awt.image.BufferedImage;

но просит, чтобы я добавил jars / JRE для этого класса.

Я добавил jdk1.6.0_38 в Eclipse в "Установленные JREs "(как они инструктируют на страницах справки Eclipse).

В проекте "Java Build Path " Я добавил это черезДобавить библиотеку "-> "Системная библиотека JRE "-> "Рабочая область по умолчанию JRE ", Он автоматически добавил JDK в проектпуть сборки.

Во время компиляции я не получаю ошибок. Только при запуске приложения в эмуляторе андроида (любой AVD) я получаю следующую ошибку:

E/dalvikvm(828): Could not find class 'java.awt.image.BufferedImage', referenced from method com.example.usejdk.MainActivity.onCreate
W/dalvikvm(828): VFY: unable to resolve new-instance 467 (Ljava/awt/image/BufferedImage;) in Lcom/example/usejdk/MainActivity;
D/dalvikvm(828): VFY: replacing opcode 0x22 at 0x0009
D/dalvikvm(828): DexOpt: unable to opt direct call 0x0cdc at 0x0c in Lcom/example/usejdk/MainActivity;.onCreate
D/AndroidRuntime(828): Shutting down VM
W/dalvikvm(828): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
E/AndroidRuntime(828): FATAL EXCEPTION: main
E/AndroidRuntime(828):   java.lang.NoClassDefFoundError: java.awt.image.BufferedImage
E/AndroidRuntime(828):   at com.example.usejdk.MainActivity.onCreate(MainActivity.java:16)
E/AndroidRuntime(828):   at android.app.Activity.performCreate(Activity.java:5104)
E/AndroidRuntime(828):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
E/AndroidRuntime(828):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
E/AndroidRuntime(828):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
E/AndroidRuntime(828):   at android.app.ActivityThread.access$600(ActivityThread.java:141)
E/AndroidRuntime(828):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
E/AndroidRuntime(828):   at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(828):   at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(828):   at android.app.ActivityThread.main(ActivityThread.java:5039)
E/AndroidRuntime(828):   at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(828):   at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(828):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime(828):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime(828):   at dalvik.system.NativeStart.main(Native Method)

Вот что я пробовалА не было»т работа:

добавление к "eclipse.ini» расположение JDK ("-vm /usr/lib/jvm/jdk1.6.0_38/bin " в 2 отдельные строки).Я добавилПо умолчанию VM Arguments " пути "-Djava.library.path = / USR / Библиотека / JVM / jdk1.6.0_38 / JRE / Библиотека».Использование 32-битных JRE и JDK, а также JRE / JDK7 - нет работы (конечно).Я попытался добавить файлы JDK JARвручную к "ЛИЭС» папка и пометкадобавить в buildpath - не сделалт работа.Я снова удалил и установил Eclipse с помощью ADT и Android SDK ...

Ничто не исправляет эту досадную ошибку ...

Пожалуйста, обратите внимание:

Я убедился, что мой.classpath файл содержит запись JRE по умолчанию (как тут говорят)Я пытался добавитьДругой JAR-файлы в "ЛИЭС» папка + "добавить в путьи используя их - все работало нормально.Я попытался запустить тот же код (в одну строку), используя "import java.awt.image.BufferedImage; " врегулярный проект Java (не проект Android) и сделал проектиспользовать JRE по умолчанию " - и этоработал нормально! Почему он работает в обычном проекте Java, а не в проекте Android?

Я думаю, это означает, что моя установка Eclipseделает иметь возможность использовать классы JDK, ноне в приложениях для Android.

Итак, что мне нужно сделать, чтобы запустить эту единственную строку кодав приложении для андроид?

Любая помощь будет ОЧЕНЬ-ОЧЕНЬ признательна. Спасибо заранее.

Ответы на вопрос(1)

Ваш ответ на вопрос