NDK - 使用 JObjectArray 循环
NDK - Loop with JObjectArray
我有一个大问题。
我有一个方法可以捕获 JObjectArray 字符串并填充字符串向量,因为该向量将用于一段代码,该代码在应用程序 PC 版本中重复使用。
string linha("");
for (int i = 0; i < tamanhoArray; i++) {
jstring jLinha = (jstring)env->GetObjectArrayElement(objArray, i);
const char * charArray = env->GetStringUTFChars(jLinha, NULL );
if (charArray != NULL)
linha = string(charArray);
env->ReleaseStringUTFChars(jLinha, charArray);
pLista.push_back(linha);
}
该方法在应用程序执行期间执行了几次,但总是在第 13 行的某个点(我用 "log" 调试)应用程序并显示 logcat"(错误应用程序):本地引用 table 溢出”。
有人遇到过这个问题吗?
因为你没有删除从数组中获取的本地引用:
env->DeleteLocalRef(jLinha);
我有一个大问题。
我有一个方法可以捕获 JObjectArray 字符串并填充字符串向量,因为该向量将用于一段代码,该代码在应用程序 PC 版本中重复使用。
string linha("");
for (int i = 0; i < tamanhoArray; i++) {
jstring jLinha = (jstring)env->GetObjectArrayElement(objArray, i);
const char * charArray = env->GetStringUTFChars(jLinha, NULL );
if (charArray != NULL)
linha = string(charArray);
env->ReleaseStringUTFChars(jLinha, charArray);
pLista.push_back(linha);
}
该方法在应用程序执行期间执行了几次,但总是在第 13 行的某个点(我用 "log" 调试)应用程序并显示 logcat"(错误应用程序):本地引用 table 溢出”。 有人遇到过这个问题吗?
因为你没有删除从数组中获取的本地引用:
env->DeleteLocalRef(jLinha);