我想从安卓工作室访问 .so lib 及其 cpp 文件的方法
I wanted to access .so lib and methods of it's cpp files from Android studio
我想访问来自Android Studio的CPP文件的lib文件和方法。
Android Studio中的代码=>在.so lib =>中的Java代码中 jni =>在cpp
中
。
您需要与JNI/NDK编写该共享库的包装器,然后您可以在Kotlin或Java中调用JNI/NDK实现。
将您的C/C 加载到Java中:
System.loadLibrary("lib-wrapper");
在Java中创建一个接口:
package my.package.name;
class LibWrapper {
/**
* Native method implemented in C/C++
*/
public native String wrapperFunction();
}
,然后在您的lib-wrapper.c
中JNIEXPORT jstring JNICALL
Java_my_package_name_LibWrapper_wrapperFunction( JNIEnv* env,
jobject thiz ) {
// call your .so code here
// then return your result
return (*env)->NewStringUTF(env, "wrapperFunction Result");
}
更多资源:
https://developer.android.com/studio/projects/add-native-code
https://developer.android.com/ndk/samples/sample_hellojni#java
相关文章:
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- JSON转换为nlohmann JSON-lib中的结构数组
- 通过实例理解std::move及其目的
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 使用 VS2015 在 Windows 10 上构建 Fortran .lib x64 位并将其链接到 C++
- 仅让特定类'Fabric'构造类'Foo'及其所有子类的实例
- 为什么我的链接器在找到Coin4d.lib后搜索Coin4sd.lib?
- libcpmtd.lib有什么用?
- LNK1104:无法打开libpjproject-i386-Win32-vc14-Debug-Static.lib
- 解析引用 |exe/dll vs lib
- 在 /usr/local/lib 下找不到库
- LLVM 编译:目标的配方 '../lib/IR/Release+Asserts/Intrinsics.gen.tmp' failed
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- VS2015 未链接用户32.lib
- 使用连续字符及其路径查找矩阵中最长路径的长度
- 从 .lib 文件创建一个.dll文件
- 如何在目录及其子文件夹中构建文件名字符串向量?
- 看不到文件'SDL2.lib'
- 如何使用用户定义的函数覆盖 C lib 函数,如 _sbrk?
- 我想从安卓工作室访问 .so lib 及其 cpp 文件的方法