Android NDK java.lang.UnsatisfiedLinkError JNI

Android NDK java.lang.UnsatisfiedLinkError JNI,java,android,android-ndk,java-native-interface,Java,Android,Android Ndk,Java Native Interface,我试图在java中从testRTSPClient.cpp调用一个方法。但我得到以下错误。 03-06 18:36:11.558:E/AndroidRuntime(6938):java.lang.UnsatifiedLink错误:播放 我的java类是RTSPClientActivity.java 和.cpp文件是testRTSPClient.cpp 下面是我在.cpp文件中创建的方法 void Java_my_pakg_RTSPClientActivity_play(JNIEnv*env,job

我试图在java中从testRTSPClient.cpp调用一个方法。但我得到以下错误。 03-06 18:36:11.558:E/AndroidRuntime(6938):java.lang.UnsatifiedLink错误:播放

我的java类是RTSPClientActivity.java 和.cpp文件是testRTSPClient.cpp

下面是我在.cpp文件中创建的方法

void Java_my_pakg_RTSPClientActivity_play(JNIEnv*env,jobject obj) { ... }

我在网上看到过相关的问题,没有有效的答案,我无法找到我错的地方。。 谢谢…

你得换衣服了

static native void playstream();


作为CPP < /P> < P>中定义的相同条目,您需要在C++代码>外部“C”< /COD>中封装C++函数定义。下面是一个例子:


请检查函数签名,它们在C和Java代码中应该是相同的。 最好的方法是使用本机函数从类创建.h文件

在命令行中,转到项目/bin/类并在那里执行

javah -jni com.mypackage.myclass

java文件代码是公共类RTSPClientActivity扩展活动{static{try{System.loadLibrary(“testRtspClient”);}catch(Throwable e){throw new RuntimeException(e);}}}}}static native void playstream();@Override protected void onCreate(Bundle savedInstanceState){//TODO自动生成的方法存根super.onCreate(savedInstanceState);setContentView(R.layout.rtsp_layout);play();}很抱歉,格式不好,stackoverflow新增了此功能…您应该将代码放入问题中。注释中没有格式。从这里开始:。此外,请查看异常之前的logcat行;有时您会在那里找到来自
dlopen()
的消息。
static native void play();
javah -jni com.mypackage.myclass