在Android应用中使用.so文件

时间:2016-06-01 08:13:17

标签: android android-ndk

我有一个我添加到Android Studio 2.1.1的.so文件。一切都运行良好,我可以从.so文件中调用该方法。唯一的事情是,为了它的工作,我需要从我的应用程序中的一个非常特定的部分调用本机方法。

例如,方法名称为Java_com_test_app_MainView_myMethod,因此我必须在名为myMethod的包中名为MainView的类中调用com.test.app

因此,如果我将MainView重命名为SubView,我会java.lang.UnsatisfiedLinkError: Native method not found: com.test.app.SubView.myMethod

这应该是这样的,还是我错过了什么?

1 个答案:

答案 0 :(得分:2)

这确实应该像这样工作。 JNI方法名称必须以_格式镜像JAVA方法名称。

this doc,必须遵守以下规则:

  

解析原生方法名称

     

动态链接器根据名称解析条目。本机方法名称由以下组件连接:

     
      
  • 错误的完全合格的班级名称
  •   
  • 下划线(“_”)分隔符
  •   
  • 错误的方法名称
  •   
  • 用于重载的本机方法,两个下划线(“__”)后跟受损的参数签名
  •