Hi all,
I have an application which was running fine on Android 9 (and previous versions)
But it crash on startup with Android 10 (API 29).
It seems that API 29 introduced a lot of methods in ActivityLifecycleCallbacks and that ActivityLifecycleCallbacks (in JNIHelpers.cpp) needs a bit of udpate to take that into account.
I managed to make my application work by changing the last line (the methodName.startsWith("onActivity") ? nullptr :
part ) (which is a ugly hack I confess)
jobject ActivityLifecycleCallbacks::invoke (jobject proxy, jobject method, jobjectArray args)
{
auto* env = getEnv();
auto methodName = juceString ((jstring) env->CallObjectMethod (method, JavaMethod.getName));
auto activity = env->GetArrayLength (args) > 0 ? env->GetObjectArrayElement (args, 0) : (jobject) nullptr;
auto bundle = env->GetArrayLength (args) > 1 ? env->GetObjectArrayElement (args, 1) : (jobject) nullptr;
if (methodName == "onActivityCreated") { onActivityCreated (activity, bundle); return nullptr; }
else if (methodName == "onActivityDestroyed") { onActivityDestroyed (activity); return nullptr; }
else if (methodName == "onActivityPaused") { onActivityPaused (activity); return nullptr; }
else if (methodName == "onActivityResumed") { onActivityResumed (activity); return nullptr; }
else if (methodName == "onActivitySaveInstanceState") { onActivitySaveInstanceState (activity, bundle); return nullptr; }
else if (methodName == "onActivityStarted") { onActivityStarted (activity); return nullptr; }
else if (methodName == "onActivityStopped") { onActivityStopped (activity); return nullptr; }
return methodName.startsWith("onActivity") ? nullptr : AndroidInterfaceImplementer::invoke (proxy, method, args);
}
Did I miss something or does Juce need a bit of update for Android 10 ?
Thanks for your help