He recopilado dex2oat en linux-x86_64 para linux-x86. Me puede ejecutar como una aplicación normal. El fondo es, tengo una herramienta que puede generar dex códigos y quiero realizar algunas comprobaciones básicas que dex2oat. Por lo que no es importante para mí para conseguir una real archivo ejecutable.
Hago la siguiente salida:
dex2oat I 4183 4183 art/dex2oat/dex2oat.cc:1239] out/host/linux-x86/bin/dex2oat --runtime-arg -Xms64m --runtime-arg -Xmx64m --image-classes=frameworks/base/preloaded-classes --dex-file=/home/marc/Apps/Example1.apk --dex-location=bla.apk --oat-file=bla.oat --image=out.art --base=0x60000000 --instruction-set=x86 --instruction-set-features=default --runtime-arg -Xrelocate --host --android-root=out/host/linux-x86 --include-patch-information
dex2oat E 4183 4183 art/runtime/runtime.cc:1108] Failed to return pre-allocated NoClassDefFoundError
dex2oat F 4183 4183 art/runtime/thread.h:330] Check failed: new_exception != NULL
dex2oat F 4183 4183 art/runtime/runtime.cc:284] Runtime aborting...
dex2oat F 4183 4183 art/runtime/runtime.cc:284] Aborting thread:
dex2oat F 4183 4183 art/runtime/runtime.cc:284] "main" prio=5 tid=1 Runnable (still starting up)
dex2oat F 4183 4183 art/runtime/runtime.cc:284] | group="" sCount=0 dsCount=0 obj=(nil) self=0xf89a8e78
dex2oat F 4183 4183 art/runtime/runtime.cc:284] | sysTid=4183 nice=0 cgrp=user/1000.user/c2.session sched=0/0 handle=0xf6b76700
dex2oat F 4183 4183 art/runtime/runtime.cc:284] | state=R schedstat=( 17496280 53788 15 ) utm=1 stm=0 core=7 HZ=100
dex2oat F 4183 4183 art/runtime/runtime.cc:284] | stack=0xff0f1000-0xff0f3000 stackSize=7MB
dex2oat F 4183 4183 art/runtime/runtime.cc:284] | held mutexes= "abort lock" "mutator lock"(shared held)
¿Alguien sabe qué causa este error o no me suministro el mal argumentos?
He añadido un cout instrucción en el código y resulta que la clase que se busca es Ljava/lang/Objeto;