編譯Hello JNI的詳細步驟
在Android NDK的快速更新下,許多例子程序文檔并沒有同步更新,導致很多人在嘗試運行第一個NDK程序"hellojni"時遇到困難。本文將記錄在android-ndk-r9d版本下編譯"hell
在Android NDK的快速更新下,許多例子程序文檔并沒有同步更新,導致很多人在嘗試運行第一個NDK程序"hellojni"時遇到困難。本文將記錄在android-ndk-r9d版本下編譯"hellojni"的流程,并希望對大家有所幫助。
配置Android NDK環(huán)境
如果尚未配置Android NDK環(huán)境,可以參考“Android NDK r8/r9環(huán)境配置”文章。需要注意的是,此教程僅適用于NDK r9版本存在的特定bug,如果使用r10版本,則無需按照此操作方法進行。
在Eclipse中導入項目
打開Eclipse,選擇菜單"File -> New -> Other...",然后選擇“Android -> Android Project from Existing Code”,點擊Next。接著,瀏覽并選擇NDK根目錄下的samples中的hello-jni項目,并取消選中“Copy projects into workspace”。最后,在工程上右鍵,選擇“Android Tools -> Add Native Support”。
解決報錯并編譯項目
打開項目文件“hellojni/jni/hello-jni.c”,若出現(xiàn)報錯“Method 'NewStringUTF' could not be resolved”,解決方法如下:將文件名由“hello-jni.c”改為“hello-jni.cpp”;在函數(shù)“Java_com_example_hellojni_HelloJni_stringFromJNI”的最前面加上“extern C”;修改函數(shù)中的代碼。同時,需修改文件中的文件引用方式為.cpp格式。完成后,點擊工具欄上的“Build All”按鈕進行編譯。
調試和運行項目
在項目上右鍵,選擇“Debug As -> Android Native Application”。若出現(xiàn)“Unable to resolve target 'android-3'”錯誤,需要修改AndroidManifest.xml文件中的Min SDK Version和Target SDK Version為19。另外,若提示“Avoid hardcoding the debug mode”,需在Application Attributes中將Debuggable屬性中的true清除。最后再次右鍵點擊“Debug As -> Android Native Application”即可成功運行Hello JNI項目。
通過以上步驟,您將成功編譯并運行Hello JNI項目。如仍有疑問,歡迎留言交流。