2014-07-01 114 views
0

我一直在嘗試開始向我的Android應用程序添加本地代碼,所以我瀏覽了大量的Android NDK教程都無濟於事。我無法讓任何應用程序在我的模擬器或Galaxy S3上運行。我不斷收到相同的錯誤:「不幸的是,[AppName]已停止工作」 我的ndk-build命令成功運行,並且得到一個.so文件。我不知道.so文件應該是什麼樣子。這裏是我的Android NDK應用程序不會運行

http://txt.do/klo0

它看起來像廢話給我,但我知道什麼?

這是我的logcat http://txt.do/klod

+0

顯然,問題在這裏陳述:'未找到本地方法:com.example.ndksetup.NDKSetupActivity.printLog'。 [你有什麼嘗試](http://mattgemmell.com/what-have-you-tried/)來解決它?添加[SSCCE](http://sscce.org/),它是一個編程網站。 – Drop

+0

[Android ndk應用程序停止工作]的可能重複(http://stackoverflow.com/questions/24517066/android-ndk-app-stops-working) – XGouchet

回答

0

在Android NDK目錄下,有一個HELLO-JNI的例子。嘗試編譯和運行它,它的工作原理。

它在您的NDK的samples/hello-jni目錄中,我在~/android-ndk-r9d/samples/hello-jni。複製(「導入」)到您的工作區並編譯。

要生成標題:

cd bin/classes 
javah com.my.package.name.MyClassName 

注意,庫通常放置由ndk-buildlibs/something子目錄中的項目,例如,libs/armeabi-v7a,文件jni/Application.mk指定了something是,例如

APP_ABI := armeabi-v7a 

APP_ABI := all 

該庫將被放置在您的APK,並安裝在您的應用程序的數據文件夾中的子目錄。

System.loadLibrary("stuff"); // libstuff.so 

會找到它。 (請注意,如果您將應用程序作爲系統應用程序運行,那麼情況就不一樣了。)

爲錯誤目標構建的庫不起作用。

+0

謝謝。通過查看示例代碼,我能夠修復一些錯誤 – user3794517