Android JNI UnsatisfiedLink异常

时间:2012-04-22 16:54:40

标签: android android-ndk java-native-interface

  1. 我试图用Java代码调用C ++方法
  2. 方法的签名是:

    • Java
      公共类FLVCamActivity扩展活动{
      静的 的System.loadLibrary( “FLVCam”);
      System.out.println(“Loaded FLVCam”);
      }
      public native void RunFlvServer(int iCamId);

    • C ++
      extern“C”JNIEXPORT void JNICALL Java_com_sophin_flvcam_FlvCamActivity_RunFlvServer(JNIEnv * env,jobject javaThis,jint iCamId)

  3. 在运行时,System.loadLibrary(“FLVCam”)SUCCEEDs,但是,调用'RunFlvServer'失败,“找不到本机Lcom / sophin / flvcam / FLVCamActivity的实现; .RunFlvServer(I)V”
  4. 我使用的SDK版本是:AndroidSDK = 15,NDK = r7b,minsdk @ manifest = 15
  5. 使用'nm -g'列出我的本机lib公开的所有导出条目,清楚地表明本机方法已正确导出: 0006c0a8 T Java_com_sophin_flvcam_FlvCamActivity_RunFlvServer

    考虑到上述情况,为什么我会得到这个UnsatisfiedLink例外?
  6. Sophin的Nadav

1 个答案:

答案 0 :(得分:0)

这是一个大写/小写的东西,FLVCamActivity在上面有'FLV',而C ++方法有'Flv'(下),我几乎浪费了一天,Maan,我希望我'下次我会把时间用在真正的bug上。