Crash at C++ line: CallObjectMethod(...);

Bold line below was working fine in 4.15. However, this line is crashing in 4.20:


JNIEnv* env = FAndroidApplication::GetJavaEnv();

jobject activity = FAndroidApplication::GetGameActivityThis();

jmethodID mid = env->GetMethodID(env->GetObjectClass(activity), “getSystemService”, “(Ljava/lang/String;)Ljava/lang/Object;”);

jobject wifi_manager = env->CallObjectMethod(activity, mid, env->NewStringUTF(“wifi”));


What is wrong with this line and how can I fix this?

More infos are needed, like what kind of crash ?
Are any objects null in those you show/ use here ?
do you have a stack trace that is usefull ?

Did you do modifications in ProGuard config?

I didn’t change anything since 4.15.

Only useless android.bat logs and this. I found the crashing line by putting UE_LOG to each line of the code. Bold line is crashing.

try to add as much debug line as you can, like :

if(!env)
    UE_LOG("envNULL");

i’ve never used jmethodID nor jobject, but check their validity too with a log, could give more idea why it’s crashing :confused:

This was because of missing runtime permission. You can search for the relevant permission by searching ‘permission’ in monitor bat logs. Since mandatory runtime permission to get a static device id, we had to switch to dynamic device id that may change at reinstall, proved by ‘Get Device Identifier’ node.