1314mv电影网,深圳条码,法法网题库
android jni遇到的常见异常和解决办法
当使用了大量的局部引用而没有及时释放的话,就可能出现局部引用表溢出,所以变量用完以后回收一下就可以了,需要注意的是参数传的是jobject类型
(*env)->deletelocalref(env, jobject);
当调用(*env)->newstringutf时会出现,是因为传进去的char*不是utf-8,转成utf-8即可;
还有一种方法是转成jbytearray,传到java后再转成string。
c
void test(const char *text) { int len = strlen(text); if (len > 0) { jbytearray text_bytes = (*env)->newbytearray(env, len); //将c字符串转成jbytearray (*env)->setbytearrayregion(env, text_bytes, 0, len, (jbyte *) text); //回调给java (*env)->callvoidmethod(env, jobject, "javatest", text_bytes); (*env)->deletelocalref(env, text_bytes); } }
java
public void javatest(byte[] textbytearray) { string text = new string(textbytearray); }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android apk 项目一键打包并上传到蒲公英的实现方法
Android 自定义LineLayout实现满屏任意拖动功能的示例代码
android 限制某个操作每天只能操作指定的次数(示例代码详解)
Android 集成 google 登录并获取性别等隐私信息的实现代码
网友评论