Browse Source

Android: Handle SDL3 symbol name to retrieve current JNIEnv and activity.

Miku AuahDark 9 months ago
parent
commit
5b6ecab8c1
1 changed files with 11 additions and 4 deletions
  1. 11 4
      src/android/AndroidClient.cpp

+ 11 - 4
src/android/AndroidClient.cpp

@@ -53,10 +53,17 @@ AndroidClient::AndroidClient()
 : HTTPSClient()
 {
 	LibraryLoader::handle *library = LibraryLoader::GetCurrentProcessHandle();
-	// Look for SDL_AndroidGetJNIEnv
-	LibraryLoader::LoadSymbol(SDL_AndroidGetJNIEnv, library, "SDL_AndroidGetJNIEnv");
-	// Look for SDL_AndroidGetActivity
-	LibraryLoader::LoadSymbol(SDL_AndroidGetActivity, library, "SDL_AndroidGetActivity");
+
+	// Look for SDL_GetAndroidJNIEnv and SDL_GetAndroidActivity (SDL3)
+	if (
+		!LibraryLoader::LoadSymbol(SDL_AndroidGetJNIEnv, library, "SDL_GetAndroidJNIEnv") &&
+		!LibraryLoader::LoadSymbol(SDL_AndroidGetActivity, library, "SDL_GetAndroidActivity")
+	)
+	{
+		// Probably running SDL2.
+		LibraryLoader::LoadSymbol(SDL_AndroidGetJNIEnv, library, "SDL_AndroidGetJNIEnv");
+		LibraryLoader::LoadSymbol(SDL_AndroidGetActivity, library, "SDL_AndroidGetActivity");
+	}
 }
 
 bool AndroidClient::valid() const