[問題] NDK的helloworld

看板AndroidDev作者 (serflygod)時間12年前 (2012/05/30 00:22), 編輯推噓4(404)
留言8則, 4人參與, 最新討論串1/4 (看更多)
各位你們好 我初次碰NDK,新手第一次當然跑helloworld 但一直碰壁無法成功 希望各位幫助一下 ※有先在cygwin執行過ndk-build,生出so檔 hello-jni.h檔: http://i.imgur.com/y9Xsb.jpg
hello-jni.c檔: http://i.imgur.com/flVFJ.jpg
HelloJni.java檔: http://i.imgur.com/WyMeU.jpg
檔案結構: http://i.imgur.com/QxPyK.jpg
Android.mk檔: http://i.imgur.com/KYOuH.jpg
出現的錯誤訊息: http://i.imgur.com/obSSg.jpg
主要問題就是聯結不到"stringFromJNI" 但我已經用靜態的方法把它們連在一起了啊Q_Q 弄了整整兩天了 還是找不到問題所在 另外eclipse一直說我的#include <檔案.h> unresolved inclusion header檔裡面則是 JNIEXPORT jstring JNICALL com_example_hellojni_HelloJni_stringFromJNI(JNIEnv *, jobject); 一直出現syntax error 我查網路試了很多方法還是解決不了 像是這幾篇: http://pyleaf.iteye.com/blog/1408043 (裡面提到的解決方法:C/C++ General -> Paths and Symbols 但我沒C/C++這選項) http://hi.baidu.com/otss/blog/item/911cb762cb1fe6c8e6113a7a.html (裡面提到右键你的工程-->C/C++ Build-->Discovery Options-->(找到)Discovery profile: (选择)GCC per project scanner info profile) 但我右鍵我的project,也是沒有找到c/C++的選項...*_* 我的project右鍵會出現的選項: http://i.imgur.com/dCv5J.jpg
在想是不是我創造project選錯選項 但我也是跟著別人的教程走的啊OTZ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.73.121 ※ 編輯: serflygod 來自: 140.115.73.121 (05/30 00:23)

05/30 02:11, , 1F
沒註冊JNI的樣子
05/30 02:11, 1F

05/30 02:20, , 2F
loadLibrary("<MODULE>") => lib<MODULE>.so
05/30 02:20, 2F
請問要加在哪裡? 我在build project的時候 有出現libhello-jni.so => libs/armeabi/libhello-jni.so 的字樣 ※ 編輯: serflygod 來自: 140.115.73.121 (05/30 02:28)

05/30 09:15, , 3F
先確定你 libs 目錄下有出現,如果你是用 cmd 呼叫的情況
05/30 09:15, 3F

05/30 09:15, , 4F
變動不會反應在 eclipse 內,你得 refresh folder
05/30 09:15, 4F

05/30 09:15, , 5F
確定他有出現才行。
05/30 09:15, 5F
你好 我看到我的libs下面的確有libhello-jni.so的檔案 這樣算嗎? ※ 編輯: serflygod 來自: 140.115.73.121 (05/30 09:17)

05/30 13:42, , 6F
在LIBS armeabi 裡面嗎
05/30 13:42, 6F
是的 ※ 編輯: serflygod 來自: 140.115.73.121 (05/30 13:43)

05/30 14:53, , 7F
你的 device 是 arm 的嗎 xd
05/30 14:53, 7F
不好意思 我不太確定你的意思 我目前是用 模擬器去跑 有另外找到教程照著它跑出來了 這一篇: http://geek-garden.blogspot.com/2011/05/android-ndk-jni-eclipse.html 但還是不太瞭解先前的方式跑不出來OTZ 這一篇沒有用到靜態註冊或者是動態註冊 完全就是符合命名規則就好 但我看一下我原本的 看到有錯誤的有照它一樣修改一下 但還是跑不出來 ※ 編輯: serflygod 來自: 140.115.73.121 (05/30 16:56)

05/30 17:43, , 8F
你c裡面function name少了 Java_ 開頭
05/30 17:43, 8F
文章代碼(AID): #1FnFV8xS (AndroidDev)
文章代碼(AID): #1FnFV8xS (AndroidDev)