參考https://blog.csdn.net/zhouyingge1104/article/details/73749350
so包需要調用native方法時,已編譯好的so包包名已經寫死,若無法找到想要的配置檔案重新編譯so包,可以在java檔案夾下建立原項目包名同名package,如下圖:
标題
RTSPClient為含有native方法的類,so包中對應實作方法為
附ndk編譯so包步驟(live555為例):
1.Android studio 工程目錄下建立jni檔案夾,複制c++項目至jni檔案夾下的live檔案夾;
2.jni檔案夾下,建立Android.mk和Application.mk(内容如下);
3.項目 gradle.properties 檔案最後一行加上 android.useDeprecatedNdk=true;
4.建立類和native方法,編譯後在F:\work_space\TestRtsPlay2\app\build\intermediates\classes\debug 找到對應.class檔案,指令行使用javah指令生成.h檔案;
5.c++代碼引用.h檔案實作native方法;
6.項目檔案夾下,指令行輸入ndk-build進行編譯,編譯成功項目中jni同級别目錄下會有obj檔案夾,裡面有各cpu對應so包,複制到lib或jnilibs中即可;
Android.mk
Application.mk
class類生成的.h檔案
項目結構