android NDK 生成so 文件流程-ecplice

1:生成jni目錄java

首先說一句網上,大部分博客這麼寫的:打開控制檯,進入項目目錄,運行
javah -classpath bin/classes -d jni com.example.hellojni.MainAcitivityandroid

我只想問一句,這些代碼您親自運行成功了嗎?您這麼寫出來責任心何在?windows

這麼寫你會遇到這個錯誤。ui

實際上能夠這麼寫:spa

1: javah -classpath src -d jni com.itg.jni.ImageBlur3d

或寫入android.jar的路徑直接執行code

2:javah -classpath C:\project\Android\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-22\android.jar;bin/classes -d jni com.itg.jni.ImageBlurorm

而後你會在項目中獲得jni文件夾及.h的文件blog

而後編寫C文件。圖片

3:右鍵jni文件 添加Android.mk文件

寫入配置

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE   := JNI_ImageBlur
LOCAL_SRC_FILES := com_itg_jni_ImageBlur.cpp
LOCAL_LDLIBS    := -ljnigraphics -llog
include $(BUILD_SHARED_LIBRARY)
LOCAL_LDLIBS    := -ljnigraphics -llog 這一句若是沒用到BitMap不要添加。
個人需求是,操做圖片 若是沒有這句彙報

在編譯jni的cpp文件時出現:

jni/NDKtest.cpp:21: error: undefined reference to 'AndroidBitmap_getInfo'
jni/NDKtest.cpp:22: error: undefined reference to '__android_log_print'
jni/NDKtest.cpp:26: error: undefined reference to '__android_log_print'
jni/NDKtest.cpp:29: error: undefined reference to 'AndroidBitmap_lockPixels'
jni/NDKtest.cpp:30: error: undefined reference to '__android_log_print'
jni/NDKtest.cpp:39: error: undefined reference to 'AndroidBitmap_unlockPixels'
collect2.exe: error: ld returned 1 exit status
make.exe: *** [obj/local/armeabi/libNDKtest.so] Error 1
 

2 下載NDK(Native Development Kit)

2:選中要生成so 文件的項目選擇Property-->Builders-->New

設置Location,添加 ndk-build.cmd

設置working Directory 選擇項目中jni目錄 

設置build Options

勾選如圖所示

設置Specify Resources,直接選擇jni文件夾便可。完畢,保存,ecplice會自動在armeabi文件夾下生成so文件

相關文章
相關標籤/搜索