当前位置:编程学习 > wap >>

c通过jni的findclass调用jar包中的一个类返回值为零

大家好,
    现在整一个播放器app,想调用android4.1.0系统提供的接口来实现硬解的功能.
初步预定的方案为在java层封装一个对MediaCodec.java调用的接口类取名HwCodec.java,
且打在一个称作com.temobi.android.player的jar文件中,然后在C程序中调用这个java类的
相关接口完成硬解的功能. 现在在C层可以得到JavaVM *jvm以及JNIEnv *env变量了,通过
jni的findclass接口查找jar文件中的这个类,即 env>findclass(env,"com/temobi/android/player/HwCodec"),
返回的值为零,若是这样查找系统的某个类, 例如:env->findclass(env,"android/media/MediaCodec")返回就
正常,请问这个是什么原因呢?
 
另外,由于我们现在的播放器是采用java+c/c++结构的,C层的jvm变量是通过jni层得到
的java创建的JavaVM,env则通过jvm->attachcurrentthread(jvm,&env,NULL)得到的.   

请知道的朋友多多指导!谢谢!
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,