我想在so部分调用java的某个函数,该函数的参数有byte[]等。
部分的C代码如下:
jmethodID java_method = (*env)->GetMethodID(env, java_class, "PlayAudio", "([BI)V");
if(java_method == 0)
{
return (*env)->NewStringUTF(env, "not find PalyAudio!");
}
char szTemp[20] ={0xff};
(*env)->CallObjectMethod(env, java_obj, java_method, szTemp, 20);
java中PlayAudio的原型为:
public void PlayAudio(byte[] data, int datalen)
可是C部分调用是却出现空指针的调用异常。byte[]这个参数在C中该如何填入,传递到java部分?
部分的C代码如下:
jmethodID java_method = (*env)->GetMethodID(env, java_class, "PlayAudio", "([BI)V");
if(java_method == 0)
{
return (*env)->NewStringUTF(env, "not find PalyAudio!");
}
char szTemp[20] ={0xff};
(*env)->CallObjectMethod(env, java_obj, java_method, szTemp, 20);
java中PlayAudio的原型为:
public void PlayAudio(byte[] data, int datalen)
可是C部分调用是却出现空指针的调用异常。byte[]这个参数在C中该如何填入,传递到java部分?
解决方案 »
- android 中ping功能的使用
- Fragment的创建方式,怎么设置用Activity去控制呢?难道把Fragment当做Activity来用吗?
- android开发的项目,为什么在使用过程中不定时报应用程序意外终止的错误
- .net程序员能转Android开发吗?
- Gallery怎么实现多点触摸
- android开发网络应用,求思路
- 蛋疼贴:Android的框架糟透了
- 分享Android 开发环境安装手册【PDF】
- 求助关于android studio
- FastJson解析特殊数据
- 更新了eclipse的android插件,在运行以前工程的时候报错,大家帮我看看是怎么回事?
- 如何更改HorizontalScrollView原来的手势功能
int len = 20;
bytes = (*env)->NewByteArray(env, len);
if(bytes != NULL){
(*env)->SetByteArrayRegion(env, bytes, 0, len, (jbyte *)szTemp);
....
}楼主试试吧,我没有验证,希望对你有帮助
如C-->FunJava()
FunJava()
{
//文件读写。
//或者播放声音数据
}
如果是c与java用socket方式通信的话,用本地socket就可以了吧
如果是c与java用socket方式通信的话,用本地socket就可以了吧
ril就是这么干的,可以参考下