【问题标题】:I wanted to access .so lib and methods of it's cpp files from Android studio我想从 Android Studio 访问 .so lib 及其 cpp 文件的方法
【发布时间】:2019-07-08 07:14:17
【问题描述】:

我想从 Android Studio 访问 .so lib 文件及其 cpp 文件的方法。

Android studio 中的代码 => .so lib 中的 JAVA 代码 => 的 CPP 代码 JNI => 在 CPP 中

.so lib 文件将从 JNI 和从 JNI 访问到 JAVA。

【问题讨论】:

标签: java android c++ android-gradle-plugin java-native-interface


【解决方案1】:

您需要使用 JNI/NDK 为该共享库编写一个包装器,然后才能在 Kotlin 或 Java 中调用您的 JNI/NDK 实现。

用 Java 加载你的 c/c++:

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

【讨论】:

猜你喜欢
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多