Eclipse: java.lang.NoClassDefFoundError para clases JDK en un proyecto de Android

Primero, quiero mencionar que leímuchos mensajes de stackoverflow sobreNo Error Clase Def Encontrado, y también lo leí enmuchos Otros blogs y sitios web, pero las soluciones que ofrecían las personas no lo solucionaban.

Estoy corriendoEclipse de 64 bits con el complemento ADT versión v21.0.1-543035 enUbuntu 12.10 de 64 bits. Todo es de 64 bits, Ubuntu, Eclipse y JRE y JDK que utilizo (jdk1.6.0_38).

Escribí una aplicación para Android muy pequeña que necesita una clase del JDK para ejecutarse.

Aislé un poco el problema y lo recreé creando un nuevo "Proyecto de aplicación para Android" conSOLO UNA LINEA DE MI CÓDIGO (en la clase principal en el método onCreate). Esta línea:

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

Eclipse agrega automáticamente la importación necesaria:

importar java.awt.image.BufferedImage;

pero me pide que agregue los jars / JRE para esta clase.

Agregué el jdk1.6.0_38 a Eclipse en "JREs instalados" (como ellos instruyen en las páginas de ayuda de Eclipse).

En el "Java Build Path" del proyecto, lo agregué a través de "Agregar biblioteca" -> "Biblioteca del sistema JRE" -> "JRE predeterminado del área de trabajo". Agregó automáticamente el JDK a la ruta de compilación del proyecto.

Durante el tiempo de compilación, no obtengo errores. Solo cuando ejecuto la aplicación en el emulador de Android (cualquier AVD) obtengo el siguiente error:

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)

Aquí están las cosas que intenté queno funcionó:

Añadiendo a "eclipse.ini"la ubicación del jdk (" -vm /usr/lib/jvm/jdk1.6.0_38/bin "en 2 líneas separadas).Agregué los "Argumentos de VM predeterminados" de la ruta "-Djava.library.path = / usr / lib / jvm / jdk1.6.0_38 / jre / lib".El uso de JRE y JDK de 32 bits y JRE / JDK7 no funcionó (por supuesto).Intenté agregar los archivos jar de jdka mano a la carpeta "libs" y marca "agregar a buildpath" - no funcionó.Desinstalé e instalé Eclipse de nuevo con ADT y Android SDK ...

Nada arregla este molesto error ...

Por favor, también note estos:

Me aseguré de que mi.classpath archivo contiene la entrada JRE predeterminada (como dicen aquí)Intenté agregarotro jar archivos a la carpeta "libs" + "agregar a la ruta", y usarlos - funcionó bien.Intenté ejecutar el mismo código (la línea) usando "import java.awt.image.BufferedImage;" en unregular proyecto javano es un proyecto de Android) e hizo el proyecto "use Default JRE" - yfuncionó bien ¿Por qué funciona en un proyecto Java REGULAR y no en un proyecto de Android?

Supongo que significa que mi instalación de Eclipsehace tener la capacidad de usar las clases jdk, perono en aplicaciones de Android.

Entonces, ¿qué tengo que hacer para que esta única línea de código se ejecute?en una aplicación de Android?

Cualquier ayuda sería MUY MUY apreciada. Gracias de antemano.

Respuestas a la pregunta(1)

Su respuesta a la pregunta