diff --git a/sdk/android/src/jni/classreferenceholder.cc b/sdk/android/src/jni/classreferenceholder.cc index 0aa3e627a2..29295b6840 100644 --- a/sdk/android/src/jni/classreferenceholder.cc +++ b/sdk/android/src/jni/classreferenceholder.cc @@ -9,6 +9,7 @@ */ #include "sdk/android/src/jni/classreferenceholder.h" +#include "sdk/android/src/jni/class_loader.h" #include "sdk/android/src/jni/jni_helpers.h" namespace webrtc { @@ -34,8 +35,12 @@ class ClassReferenceHolder { static ClassReferenceHolder* g_class_reference_holder = nullptr; void LoadGlobalClassReferenceHolder() { + JNIEnv* env = GetEnv(); RTC_CHECK(g_class_reference_holder == nullptr); - g_class_reference_holder = new ClassReferenceHolder(GetEnv()); + g_class_reference_holder = new ClassReferenceHolder(env); + // TODO(magjed): This is a weird place to call the other class loader from, + // but the only place that will keep backwards compatibility. + InitClassLoader(env); } void FreeGlobalClassReferenceHolder() { diff --git a/sdk/android/src/jni/jni_onload.cc b/sdk/android/src/jni/jni_onload.cc index cb708e7fda..81cc4889c2 100644 --- a/sdk/android/src/jni/jni_onload.cc +++ b/sdk/android/src/jni/jni_onload.cc @@ -13,7 +13,6 @@ #define JNIEXPORT __attribute__((visibility("default"))) #include "rtc_base/ssladapter.h" -#include "sdk/android/src/jni/class_loader.h" #include "sdk/android/src/jni/classreferenceholder.h" #include "sdk/android/src/jni/jni_helpers.h" @@ -28,8 +27,6 @@ extern "C" jint JNIEXPORT JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) { RTC_CHECK(rtc::InitializeSSL()) << "Failed to InitializeSSL()"; LoadGlobalClassReferenceHolder(); - JNIEnv* env = AttachCurrentThreadIfNeeded(); - InitClassLoader(env); return ret; }