大家好:
我使用Eclipse+ADT+SDK(2.2)+Cygwin+NDK(R4)集成环境来测试JNI功能,C/C++里面的字符串传递到JAVA这边,如果是英文和数字的话,都没问题。如果含有中文字符的话,模拟器就会不显示,同时LogCat显现JVM Aborting异常。
C代码如下:
jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI =20100817中文字!");
}请大家帮忙看一下,谢谢!
我使用Eclipse+ADT+SDK(2.2)+Cygwin+NDK(R4)集成环境来测试JNI功能,C/C++里面的字符串传递到JAVA这边,如果是英文和数字的话,都没问题。如果含有中文字符的话,模拟器就会不显示,同时LogCat显现JVM Aborting异常。
C代码如下:
jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI =20100817中文字!");
}请大家帮忙看一下,谢谢!
解决方案 »
- android的BroadcastReceiver启动Activity的问题
- 请教下android里如何设置gridview里scrollbar的位置呢?
- android 获得系统可用内存不准确的问题
- 哪位大侠给指点一下,按钮设置外观的问题
- 两难问题
- 关于ListView改变其中Item中TextView字体属性的问题
- Android中什么sqlite保存的字符串末尾都要以\0结尾?
- ScrollView中gone与invisible影响高度的问题
- Android Studio如何得知JNI使用的是哪个ABI或者是toolchain呢
- webview里再进行post请求的问题
- android用什么控件显示数据
- 看一下这段代码,我想用拖动这个圆,可以移动的位置一直不对,求解
不过通过jni传输字符是有些问题,最好直接传byte到java层再转成sting
{
dp::String text = document->getText(startLoc, endLoc);
jstring rs = (env)->NewStringUTF(text.utf8());
return rs;
}
楼主请look;
jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI =20100817中文字!");
}
能否结合这个代码给修改一下。谢谢!
{
jstring rs = (env)->NewStringUTF("中华人民共和国");
return rs;
}java 调用
Log.d("",AdobeLibrary.getStringFromJNI());显示:
D/ ( 373): 中华人民共和国
我的都OK阿
logcat平时显示java中的utf-16确实是乱码,本次显示utf8能出中文了? 等待亲眼看看,目前还没见过logcat对中文不乱码的呢,不错