读书人

为什么Android程序一调用jni函数里的f

发布时间: 2012-09-14 11:53:44 作者: rapoo

为什么Android程序一调用jni函数里的ff_h263_decode_frame就会跳出去执行mainActivity呢?
我的android程序有两个activity,mainActivity里开启了一个新线程接收数据,把接收到的数据传到activity2中,在activity2中调用jni函数,通过ffmpeg把接收到的数据重新编码成图像再解码显示出来,问题是在执行到ff_h263_decode_frame这一句时jni函数就不再往下执行了,又跳到mainActivity中重新执行,就像程序刚刚启动一样?怎么回事呢?

jni中的参数传递是这样的:
Java_ffmpeg_show_pic(JNIEnv * env, jobject this, jobjectArray data) //data是mainActivity接收到的数据


jobject* picture=(*env)->GetObjectArrayElement(env,data,0);
jsize len=(*env)->GetArrayLength(env,data);
uint8_t* pic=(uint8_t*)picture

//然后自己定义codecContext和packet,将接收到的数据放到packet中,用ff_h263_decode_frame解码,这个过程在c++工程中测试过了,没有问题



求大牛解答!!不胜感激!!

[解决办法]
JNI中崩溃的话,程序会自动重起。

打Log看看是哪里不执行了,应该是C++里崩溃了。

读书人网 >Android

热点推荐