-
生成頭文件筆記本電腦
查看全部 -
生成頭文件筆記本電腦
查看全部 -
生成頭文件筆記本電腦
查看全部 -
ndk-stack
查看全部 -
ndk stack
查看全部 -
ndklog
查看全部 -
反編譯JNI-crash日志
addr2line //使用較麻煩
ndk-stack
adb logcat | ndk-stack -sym ***/armeabi //so庫路徑
adb logcat > /tem/foo.txt?
ndk-stack -sym ***/armeabi -dump foo.txt
查看全部 -
ndk常見異常思維導(dǎo)圖
查看全部 -
找到構(gòu)造方法 GetMethodID(cls,"<init>", "()V");
NewObject(cls,mtd,參數(shù));
查看全部 -
獲取native方法簽名
javap -s 全類名
查看全部 -
ABI : 應(yīng)用程序二進(jìn)制接口
定義了二進(jìn)制文件(如so庫)如何運(yùn)行在相應(yīng)的系統(tǒng)平臺(tái)(指令集,內(nèi)存對齊,系統(tǒng)函數(shù)庫)
指定編譯對應(yīng)平臺(tái)so
ndk{ ????abiFilters?"x86" ????}
查看全部 -
NDK環(huán)境搭建
配置ndk關(guān)聯(lián)AS ProjectStruct
生成頭文件
src/main/java 目錄下 javah -d ../jni 全路徑類名
jni中右鍵新建C++ source
????cpp中鍵入自己邏輯
app.gradle /defaultConfig中
ndk{
????moduleName "xx"
}
查看全部 -
1.生成頭文件:
cd app/src/main/java
javah -d ../jni com.xxx.Hello
2.獲取方法簽名:
cd app/build/intermediates/classes/debug
javap -s com.xxx.Hello
3.調(diào)Java方法
?jclass cls_hello=env->FindClass("com/xxx/Hello");
jmethodID mtd_static_method=env->GetMethodID(cls_hello,"staticMethod",方法簽名);
env->CallStaticVoidMethod(類,方法ID,入?yún)?;
4.每步都要判斷NULL,需要include下 stdlib.h stdio.h
5.類與臨時(shí)string需要釋放下,env->DeleteLocalRef(xxxx)
查看全部 -
cpu架構(gòu)
查看全部 -
配置ndk環(huán)境
查看全部 -
//生成指定類的頭文件到指定路徑? javah?-d?../jni?com.hello.fmod.Hello //?若報(bào)錯(cuò):?編碼GBK的不可映射字符 //?錯(cuò)誤原因-->JDK是國際版的,在編譯的時(shí)候,如果我們沒有用-encoding參數(shù)指定我們的JAVA源程序的編碼格式,則javac.exe首先獲得我們操作系統(tǒng)默認(rèn)采用的編碼格式。 //?解決方法:使用-encoding參數(shù)指明編碼方式?? javah?-d?../jni?-encoding?UTF-8?com.dhyz.ndkvoice.Utils
查看全部 -
ndk異常處理
ExceptionCheck()也可以換成ExceptionOccurred()
查看全部 -
ndk-stack
查看全部 -
ndk調(diào)試
查看全部 -
修改實(shí)例成員變量
查看全部 -
Jni調(diào)用java實(shí)例方法
查看全部 -
native修改java成員變量
查看全部 -
JNI調(diào)用靜態(tài)方法
查看全部 -
命令行生成頭文件
查看全部
舉報(bào)