Integrar las clases de Java generadas por EMF en un proyecto de Android

Me gustaría saber si puedo incluir un conjunto de clases generadas desde un modelo EMF (ecore) en un proyecto de Android.

Estoy intentando hacer esto, compila bien, pero en tiempo de ejecución consigo los errores como los siguientes:


06-07 11:37:04.261: INFO/dalvikvm(649): Failed resolving Lorg/mmi/events/Event; interface 318 'Lorg/eclipse/emf/ecore/EObject;' 06-07 11:37:04.261: WARN/dalvikvm(649): Link of class 'Lorg/mmi/events/Event;' failed 06-07 11:37:04.261: WARN/dalvikvm(649): VFY: unable to find class referenced in signature (Lorg/mmi/events/Event;) 

Y así:


 06-07 12:11:54.953: WARN/dalvikvm(721): threadid=1: thread exiting with uncaught exception (group=0x40014760) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): FATAL EXCEPTION: main 06-07 12:11:55.157: ERROR/AndroidRuntime(721): java.lang.NoClassDefFoundError: org.mmi.model.instantiator.MmiModelInstantiator 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at org.mmi.facades.MmiFacade.<init>(MmiFacade.java:30) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at com.mmi_android.instrumentation.InstrumentationContext.<init>(InstrumentationContext.java:15) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at com.mmi_android.instrumentation.InstrumentationContext.get(InstrumentationContext.java:21) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at com.example.helloandroid.HelloAndroid.onCreate(HelloAndroid.java:46) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at android.os.Handler.dispatchMessage(Handler.java:99) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at android.os.Looper.loop(Looper.java:126) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at android.app.ActivityThread.main(ActivityThread.java:3997) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at java.lang.reflect.Method.invokeNative(Native Method) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at java.lang.reflect.Method.invoke(Method.java:491) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 06-07 12:11:55.157: ERROR/AndroidRuntime(721): at dalvik.system.NativeStart.main(Native Method) 

¡¡¡Gracias por tu ayuda!!!

Al final resolví este problema usando una versión modificada de las clases que componen los paquetes de núcleo EMF. Puedes encontrar estas clases aquí:

Hilo del foro: http://dev.eclipse.org/mhonarc/lists/emf-dev/msg01001.html homepage del proyecto y el repositorio: http://code.google.com/p/smatrt/source/browse/#svn% 2Ftrunk% 2Ftmp% 2Forg% 253Fstate% 253Del cerrado

Necesitaba también las clases XML incluidas en el paquete javax.xml. *. Quité los comentarios correspondientes, agregó el archivo jar javax.xml y ahora todo se compila en Android.

Espero que pueda ser útil para usted en el futuro. ¡Aclamaciones!

En un comentario reciente sobre el error relacionado de Eclipse , Paul Allen escribió lo siguiente:

Sólo pensé en escribir una nota de que las cosas están funcionando. Si instalo las clases sin modificar desde los plugins org.eclipse.emf.common, org.eclipse.emf.ecore y org.eclipse.emf.ecore.xmi junto con las clases generadas de mi modelo, e importa en el Libs de mi proyecto Android, las cosas sólo funcionan. El compilador está contento. La aplicación se ejecuta en mi Nexus 7. La vida es buena.

Eso parece preferible, ya que no implica parchear las clases centrales de EMF. Todavía no lo he probado.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.