jjzjj

NewStringUTF

全部标签

java - 我需要清理传递给 NewStringUTF 的 char* 吗?

我想是的,但我发现的前12个示例都做了一些不具有说明性的事情,比如JNIEXPORTjstringJCALLJava_com_foo_dumbImpl(JNIEnv*env,jobjectthisObj){return(*env)->NewStringUTF(env,"constantstring");}所以为了后代我会问:这很糟糕,是吗?JNIEXPORTjstringJCALLJava_com_foo_dumbImpl(JNIEnv*env,jobjectthisObj){char*leak=malloc(1024);leak[0]='\0';return(*env)->NewSt

java - NewString() & NewStringUTF() 显示错误无效修改后的 UTF-8 :

我正在尝试使用android中的JNI将char*从C++传递到java。我已经尝试了多种方法来传递该数据1)使用NewStringUTF:constchar*data=getData();//thismethodreturnsachararray.env->NewStringUTF(data);执行上面的代码抛出以下错误JNIWARNING:inputisnotvalidModifiedUTF-8:illegalcontinuationbyte0x70.2)使用NewString:constchar*data=getData();//thismethodreturnsachararr

Android ICS 4.0 NDK NewStringUTF 正在崩溃应用程序

我在JNIC/C++中有一个方法,它接受jstring并返回jstring,如下所示,NATIVE_CALL(jstring,method)(JNIEnv*env,jobjectobj,jstringfilename){//GetjstringintoCstringformat.constchar*cs=env->GetStringUTFChars(filename,NULL);char*file_path=newchar[strlen(cs)+1];//+1fornullterminatorsprintf(file_path,"%s",cs);env->ReleaseStringUT

java - JNI NewStringUTF 调用时出现未决异常 'java.lang.NoSuchMethodError'

我不知道为什么调用本地方法会抛出异常。native代码:JNIEXPORTjstringJNICALLJava_org_amk_lockscreen_JNIActivity_getPackege(JNIEnv*env,jclasscls,jobjectcontext){jclassContext_class=(*env).FindClass("android/content/Context");jmethodIDmidGetPackageName=(*env).GetMethodID(Context_class,"getPackageName","(V)Ljava/lang/Strin

android - Eclipse - 无法解析方法 NewStringUTF()

我正在编写一个简单的OpenCV代码来显示经过sobel操作后的图像。我已经包含了项目属性的所有必要路径以包含OpenCV4Android文件夹。我解决了除一个错误之外的所有错误:错误:MethodNewStringUTF()couldnotberesolved我包括了我还在项目路径中包含了AndroidNDK文件夹。我的Eclipse是高度不可预测的。早些时候,当我在Android上开发其他应用程序时,它运行良好。eclipse机器依赖吗?我该怎么做才能解决此错误? 最佳答案 很可能您在CPP文件中使用了C语法同样的错误只需切换到

java - NewStringUTF() 和释放内存

我应该在将分配的字符串传递给NewStringUTF()后释放它吗?我有一些类似的代码:char*test;jstringj_test;test=some_function();//NewStringUTF(env,test);free(test);//当我将字符串传递给NewStringUTF()后释放字符串时,我收到signal11(SIGSEGV),faultaddrdeadbaad错误。如果我删除free()调用,错误就会消失。我做错了什么?我看到了相互矛盾的意见。有人说我应该自己释放它,有人说VM释放它,有人说VM不释放它,你应该用奇怪的巫术魔法来释放它。我很困惑。