2012-01-30 21 views
5

Android cihazında yeniyim, NDK kullanarak temel uygulamayı oluşturmak için http://marakana.com/forums/android/examples/49.html bağlantısını takip ettim.Hayır JNI_Onload() bulundu ve VM kapanıyor

Bu adımları tam olarak takip ettim. Paylaşılan kütüphaneyi de oluşturdum. Uygulamayı çalıştırdığınızda , catlog aşağıdaki hataları gösterir:

belirtildiği gibi
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

yerli paylaşılan kütüphane JNI_OnLoad işlevini sağlamaz eğer gayet iyi. Bu bir hata değil. –

+0

Yanıtladığınız için, aynı uygulamayı çalıştırdığımda, Catlog'da aşağıdaki hatayı alıyorum – Chandu

cevap

1

, JNI_OnLoad gerekli değildir.

aktivitesini ComponentInfo örneğini edilemiyor {com.example.NDKDemo/com.example.NDKDemo.NativeLib}: java.lang.ClassCastException: com.example.NDKDemo.NativeLib döküm edilemez İşte senin sorunun Sınıfınız com.example.NDKDemo.NativeLib android.app.Activity için döküm zira benzeri android.app.Activity

Senin böcek bile NDK sorun değildir görünüyor.

AndroidManifest.xml dosyasında listelediğiniz sınıf, Etkinlik'ten türetilen sınıftır. Eğer örnekteki gibi bir NDKDemo sınıfını yarattı, sonra o etkinlik, ve sen AndroidManifest.xml bunun adı olmalıdır:

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