diff --git a/android/jni/app-android.cpp b/android/jni/app-android.cpp index acdf51e099..78b4492835 100644 --- a/android/jni/app-android.cpp +++ b/android/jni/app-android.cpp @@ -1482,8 +1482,12 @@ std::vector System_GetCameraDeviceList() { for (int i = 0; i < arrayListObjectLen; i++) { jstring dev = static_cast(getEnv()->CallObjectMethod(deviceListObject, arrayListGet, i)); - const char* cdev = getEnv()->GetStringUTFChars(dev, nullptr); - deviceListVector.push_back(cdev); + const char *cdev = getEnv()->GetStringUTFChars(dev, nullptr); + if (!cdev) { + getEnv()->DeleteLocalRef(dev); + continue; + } + deviceListVector.push_back(std::string(cdev)); getEnv()->ReleaseStringUTFChars(dev, cdev); getEnv()->DeleteLocalRef(dev); }