0
  1. 我有一个尝试从 Java 代码调用的 C++ 方法
  2. 该方法的签名是:

    • Java
      公共类 FLVCamActivity 扩展 Activity {
      static {
            System.loadLibrary("FLVCam");
            System.out.println("加载的 FLVCam");
      }
      公共本机无效 RunFlvServer(int iCamId);

    • C++ :
      extern "C" JNIEXPORT void JNICALL Java_com_sofin_flvcam_FlvCamActivity_RunFlvServer(JNIEnv* env, jobject javaThis, jint iCamId)

  3. 在运行时,System.loadLibrary("FLVCam") SUCCEEDs,但是,调用“RunFlvServer”失败,“No implementation found for native Lcom/sophin/flvcam/FLVCamActivity;.RunFlvServer (I)V”
  4. 我使用的 SDK 版本是:AndroidSDK=15, NDK=r7b, minsdk@manifest = 15
  5. 使用“nm -g”列出我的本机库公开的所有导出条目,很明显本机方法已正确导出:0006c0a8 T Java_com_sofin_flvcam_FlvCamActivity_RunFlvServer

    考虑到上述情况,为什么我会得到这个 UnsatisfiedLink 异常?

索芬的纳达夫

4

1 回答 1

0

这是一种大写/小写的东西,FLVCamActivity 在大写中具有“FLV”,而 C++ 方法具有“Flv”(Lower),我在这上面浪费了将近一天的时间,Maan,我希望我会用我的下次有时间讨论真正的错误。

于 2012-04-23T03:18:30.827 回答