之前在eclipse中載入jni並且jni中使用到了第三方庫的時候很簡單只要在android.mk檔案中配置就可以了
例如:
對應的android.mk檔案:
local_path
:= $(call my-dir)
local_c_includes := \
$(local_path) \
$(local_path)/include \
local_src_files:= \
com_protocol_opensslproxy.cpp \
include
$(build_shared_library)
include
$(clear_vars)
local_module
:=crypto
local_src_files
:=libcrypto.a
include
$(prebuilt_static_library)
include
$(clear_vars)
local_module
:=ssl
local_src_files
:=libssl.a
include
$(prebuilt_static_library)
include
$(clear_vars)
local_src_files += $(local_src_files)
local_c_includes += $(local_c_includes)
local_ldlibs +=-llog -lz
local_static_libraries += crypto ssl
local_module_tags
:= optional
local_module
:= libprotohandler
include
$(build_shared_library)
使用時倒入這三個生成的庫檔案就可以了,度娘那有很多 就不再過多的贅述了。
現在我用android studio開發了,之前的**自然要移植到studio上邊來,這時候問題就來了。開始移植的時候以為studio相容eclipse的使用方式,直接弄過來了,一執行果然沒有成功。因為android.mk檔案根本沒有被呼叫。
然後又度娘了不少studio的jni呼叫,然後發現網上的大多都是簡單的呼叫,只是寫幾句c/c++**。然後gradle中配置下系統依賴庫和生成的名字,就完事兒了,並沒有我想要的使用第三方的庫,而且使用一下使用兩個的方法。然後坑了不少時間。後來發現要使用gradle-experimental外掛程式才能解決這個問題。現在記錄一下以備不時之需
gradle檔案配置:
專案:
然後就執行成功了!
JNI 在c中使用log 和生成so庫
ndk配置ldlibs log z m ndk sourcesets abifilters 指定生成哪幾種.so檔案 sourceset配置生成.so檔案的位置 使用.so檔案 c已經編譯成.so檔案的情況下,將生成的.so檔案複製到專案的libs目錄下,然後刪除jni檔案下面的檔案,再執行的時候你...
C 中使用MVC架構(三)
定義乙個基本業務邏輯介面ibaseservice,作各業務訪問的總中介,也就是說檢視層只通過ibaseservice的介面物件,訪問業務層,具體訪問哪個業務,是通過注入ibaseservice的實現類來完成的,可根據需要生成具體業務類,實現介面中定義的抽象方法。業務邏輯層通過對應資料實現類,訪問模型...
在Eclipseme中使用第三方庫
由於工作關係,需要研究tinyline這個第三方的j2me開發包。我建立project時,把tinyline.zip放在了project的 lib目錄下面,編譯時,可以通過。但是執行時,總是會出現midpsvgcanvas這個類找不到的異常。幾經周折,才發現,用到的tinyline的第三方庫中的cl...