2012-01-30 114 views
5

我是Android新手, 我按照鏈接http://marakana.com/forums/android/examples/49.html上的說明創建了使用NDK的基本應用程序。找不到JNI_Onload()和虛擬機關閉

我完全按照這些步驟。我也創建了共享庫。 當我運行應用程序,顯示目錄下載以下錯誤:

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

這是好的,如果本機共享庫不提供JNI_OnLoad功能。這不是一個錯誤。 – 2012-01-30 16:41:45

+0

感謝您的回覆,當我運行相同的應用程序時,我在Catlog中收到以下錯誤 – Chandu 2012-01-31 04:05:13

回答

1

如前所述,JNI_OnLoad是沒有必要的。這是你的問題:

無法實例活動ComponentInfo {com.example.NDKDemo/com.example.NDKDemo.NativeLib}: java.lang.ClassCastException: com.example.NDKDemo.NativeLib不能投到android.app.Activity

你的bug甚至不是NDK問題,它看起來像:你的類com.example.NDKDemo.NativeLib不能轉換爲android.app.Activity。

您在AndroidManifest.xml中列出的類是從Activity派生的類。如果你創建了一個NDKDemo類象的例子,那麼這就是你的活動,你應該在AndroidManifest.xml命名爲:

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