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 в «Установленные JRE» (как они инструктируют на страницах справки Eclipse).

В «Путь сборки Java» проекта я добавил его через «Добавить библиотеку» -> «Системная библиотека 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.inimsgstr "расположение jdk (" -vm /usr/lib/jvm/jdk1.6.0_38/bin "в 2 отдельные строки).Я добавил «Аргументы виртуальной машины по умолчанию» в пути «-Djava.library.path = / usr / lib / jvm / jdk1.6.0_38 / jre / lib».Использование 32-битных JRE и JDK и JRE / JDK7 - не сработало (конечно).Я попытался добавить файлы JDK JARвручную в папку "libs" и пометить "добавить в buildpath" - не работает.Я снова удалил и установил Eclipse с помощью ADT и Android SDK ...

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

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

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

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

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

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