Android Native Bridge Unreal Engine plugin designed to seamlessly bridge C++/Blueprints with native Android Java code. It enables two-way communication between Unreal Engine and Android system APIs or third-party SDKs without requiring manual modifications to AndroidManifest.xml or project build files.
📑 Documentation | 🎞️ Android Device Demo
Quick start
Step 1: Configure Build & Manifest (Optional)
If your Java code requires specific Android permissions (e.g., Camera, Location) or third-party SDK dependencies (via Gradle), you can configure them easily through plugin settings or Unreal Plugin Language (UPL). Note: For basic system APIs or custom Java helpers that don't require special permissions, you can skip this step entirely!
Step 2: Create Your Java Helper Class
Step 3: Register and Trigger from Unreal Engine (Blueprints or C++)
🎮 Included Demo & Examples
The plugin comes with a fully configured sample setup so you can test native communication immediately:
• Demo Level: Located at `AndroidNativeBridge ➔ Demo ➔ Maps ➔ ANB_Demo`. Build this map to your Android device to test the bridge in action.
• Example UI Widget: Check `AndroidNativeBridge ➔ Demo ➔ UserWidget ➔ ANB_Show` to see how to hook into Java functions directly from Blueprints and handle incoming native events.
• Sample Java Source Files: Located inside the plugin's folder under `Extras ➔ CustomService`. These serve as a reference template for writing your own Java helper classes.
Features:
Infinite Extensibility: Hook into any native Android feature or third-party library (AdMob, Firebase, Google Cloud, hardware sensors, etc.).
Bi-Directional Event Pipeline: Effortlessly execute Java methods from Blueprints/C++ and receive asynchronous native events back in Unreal Engine via a single unified bridge (NotifyUnreal).
Zero Manual Manifest Edits: Easily configure permissions, ProGuard rules, dynamic Gradle dependencies, and manifest entries directly from Unreal Engine's Project Settings — no need to manually edit XML.
⚠️ IMPORTANT CONFIGURATION NOTE
Android Package Name Requirement:
Before calling any Java methods via the bridge, open Project Settings ➔ Android ➔ Android Package Name and ensure you replace the default [PROJECT] placeholder with your actual project name (e.g., com.YourCompany.MyGame).
Leaving the default [PROJECT] tag will break JNI class lookup at runtime and result in Failed to find Java class errors.