2012-01-30 13 views
5

Soy nuevo en Android, Seguí las instrucciones en el enlace http://marakana.com/forums/android/examples/49.html para crear la aplicación básica usando NDK.No se encontró JNI_Onload() y se cerró VM

que siguieron esos pasos exactamente. También creé la biblioteca compartida. Cuando ejecuto la aplicación, Catlog muestra los siguientes errores:

Trying to load lib /data/data/com.example.NDKDemo/lib/libndk_demo.so 0x4129dc18 
01-30 04:50:58.856: D/dalvikvm(586): Added shared lib 
        /data/data/com.example.NDKDemo/lib/libndk_demo.so 0x4129dc18 
01-30 04:50:58.856: D/dalvikvm(586): No JNI_OnLoad found in 
        /data/data/com.example.NDKDemo/lib/libndk_demo.so 0x4129dc18, 
        skipping init 
01-30 04:50:58.866: D/AndroidRuntime(586): Shutting down VM 
01-30 04:50:58.866: W/dalvikvm(586): threadid=1: thread exiting with uncaught 
        exception (group=0x409c01f8) 
01-30 04:50:58.896: E/AndroidRuntime(586): FATAL EXCEPTION: main 
01-30 04:50:58.896: E/AndroidRuntime(586): java.lang.RuntimeException: 
        Unable to instantiate activity ComponentInfo 
        {com.example.NDKDemo/com.example.NDKDemo.NativeLib}: 
        java.lang.ClassCastException: 
        com.example.NDKDemo.NativeLib cannot be cast to android.app.Activity 
+0

Está bien si la biblioteca compartida nativa no proporciona la función JNI_OnLoad. No es un error. –

+0

Gracias por la respuesta, cuando estoy corriendo la misma aplicación, que estoy recibiendo el siguiente error en Catlog – Chandu

Respuesta

1

Como se ha mencionado, JNI_OnLoad no es necesario. Aquí está el problema:

No puede crear una instancia de la actividad ComponentInfo {com.example.NDKDemo/com.example.NDKDemo.NativeLib}: java.lang.ClassCastException: com.example.NDKDemo.NativeLib no puede ser echada a android.app.Activity

Su fallo no es ni siquiera un problema NDK, que parece: Su com.example.NDKDemo.NativeLib clase no se puede convertir a android.app.Activity.

La clase que incluya en AndroidManifest.xml es el que se deriva de la actividad. Si ha creado una clase NDKDemo como en el ejemplo, entonces eso es su actividad, y usted debe nombrarlo en AndroidManifest.xml:

<activity android:name="NDKDemo" ... other options ... > 
Cuestiones relacionadas