2012-01-30 15 views
5

Sono nuovo di Android, Ho seguito le istruzioni sul collegamento http://marakana.com/forums/android/examples/49.html per creare l'applicazione di base utilizzando NDK.Nessun JNI_Onload() trovato e VM in chiusura

Ho seguito esattamente questi passaggi. Ho anche creato la libreria condivisa. Quando funzionare l'applicazione, CatLog mostra i seguenti errori:

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

E va bene se libreria condivisa nativa non fornisce la funzione JNI_OnLoad. Non è un errore –

+0

Grazie per la risposta, quando sto eseguendo la stessa applicazione, sto ricevendo il seguente errore in Catlog – Chandu

risposta

1

Come accennato, JNI_OnLoad non è necessaria. Ecco il problema:

Impossibile istanziare attività ComponentInfo {com.example.NDKDemo/com.example.NDKDemo.NativeLib}: java.lang.ClassCastException: com.example.NDKDemo.NativeLib non può essere lanciato a android.app.Activity

il bug non è nemmeno un problema NDK, sembra che: Il tuo com.example.NDKDemo.NativeLib classe non può essere gettato a android.app.Activity.

La classe elencata in AndroidManifest.xml è quella che deriva da Activity. Se è stata creata una classe NDKDemo come nell'esempio, allora questo è la vostra attività, e si dovrebbe chiamarlo in AndroidManifest.xml:

<activity android:name="NDKDemo" ... other options ... > 
Problemi correlati