-
Notifications
You must be signed in to change notification settings - Fork 40
Closed
Description
Environment
Mac => 15.5 (24F74)
npm => 10.9.0
node => v18.20.4
Java => openjdk 17.0.12 2024-07-16 LTS
OpenJDK Runtime Environment Microsoft-9911841 (build 17.0.12+7-LTS)
OpenJDK 64-Bit Server VM Microsoft-9911841 (build 17.0.12+7-LTS, mixed mode, sharing)
Ruby => ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin24]
Python => Python 3.10.0
package.json:
"scripts": {
"start": "rnef start",
"lint": "eslint .",
"test": "jest",
"ios": "rnef run:ios",
"android": "rnef run:android",
"package:ios": "rnef package:ios --scheme TESTRNSDKReact --configuration Release",
"package:android": "rnef package:aar --variant Release --module-name rnsdkbrownfield && rnef publish-local:aar --module-name rnsdkbrownfield"
},
"dependencies": {
"@callstack/react-native-brownfield": "^1.1.0",
"@react-navigation/native": "^7.1.14",
"@react-navigation/native-stack": "^7.3.21",
"@react-navigation/stack": "^7.4.2",
"@rnef/plugin-brownfield-android": "^0.7.26",
"react": "19.0.0",
"react-native": "0.79.1",
"react-native-gesture-handler": "^2.27.1",
"react-native-safe-area-context": "^5.5.1",
"react-native-screens": "^4.11.1"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/preset-env": "^7.25.3",
"@babel/runtime": "^7.25.0",
"@expo/fingerprint": "^0.11.6",
"@react-native/babel-preset": "0.79.1",
"@react-native/eslint-config": "0.79.1",
"@react-native/metro-config": "0.79.1",
"@react-native/typescript-config": "0.79.1",
"@rnef/cli": "^0.7.26",
"@rnef/platform-android": "^0.7.26",
"@rnef/platform-ios": "^0.7.26",
"@rnef/plugin-brownfield-ios": "^0.7.26",
"@rnef/plugin-metro": "^0.7.26",
"@rnef/welcome-screen": "^0.7.26",
"@types/react": "^19.0.0",
"@types/react-test-renderer": "^19.0.0",
"babel-jest": "^29.6.3",
"eslint": "^8.19.0",
"jest": "^29.6.3",
"prettier": "2.8.8",
"react-test-renderer": "19.0.0",
"typescript": "5.0.4"
}
Description
I'm using the @react-navigation library to handle navigation in my application. Everything works fine when I run npm run android and test the app in the simulator.
However, the issue arises when I try to export my React Native app as an .aar file and integrate it into a native Android application. I've followed the official documentation to set this up, but when I launch the native Android app and attempt to load the React Native module, I encounter an error:
----- class 'Lcom/swmansion/rnscreens/NativeProxy;' cl=0x136c2f30 -----
objectSize=236 (224 from super)
access=0x0000.0011
super='java.lang.Class<java.lang.Object>' (cl=0x0)
vtable (1 entries, 11 in super):
0: void com.swmansion.rnscreens.NativeProxy.nativeAddMutationsListener(com.facebook.react.fabric.FabricUIManager)
direct methods (2 entries):
0: void com.swmansion.rnscreens.NativeProxy.<clinit>()
1: void com.swmansion.rnscreens.NativeProxy.<init>()
static fields (1 entries):
0: com.swmansion.rnscreens.NativeProxy$Companion com.swmansion.rnscreens.NativeProxy.Companion
2025-07-06 11:13:53.954 2400-5057 p.shell_android com.test.shell_android E Failed to register native method com.swmansion.rnscreens.NativeProxy.initHybrid()Lcom/facebook/jni/HybridData; in /data/app/~~_qHARhTc-xkpcizdaCbeCQ==/com.test.shell_android-r1RAapFsqY6_DDeEvDEIeQ==/base.apk!classes5.dex
2025-07-06 11:13:53.974 2400-5057 log com.test.shell_android E error java.lang.NoSuchMethodError: no static or non-static method "Lcom/swmansion/rnscreens/NativeProxy;.initHybrid()Lcom/facebook/jni/HybridData;"
at java.lang.Runtime.nativeLoad(Native Method)
at java.lang.Runtime.nativeLoad(Runtime.java:1126)
at java.lang.Runtime.loadLibrary0(Runtime.java:1080)
at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
at java.lang.System.loadLibrary(System.java:1661)
at com.swmansion.rnscreens.ScreensModule.<init>(ScreensModule.kt:24)
at com.swmansion.rnscreens.RNScreensPackage.getModule(RNScreensPackage.kt:56)
at com.facebook.react.BaseReactPackage$ModuleHolderProvider.get(BaseReactPackage.kt:129)
at com.facebook.react.BaseReactPackage$ModuleHolderProvider.get(BaseReactPackage.kt:125)
at com.facebook.react.bridge.ModuleHolder.create(ModuleHolder.java:186)
at com.facebook.react.bridge.ModuleHolder.getModule(ModuleHolder.java:151)
at com.facebook.react.bridge.JavaModuleWrapper.getModule(JavaModuleWrapper.java:62)
at com.facebook.react.bridge.JavaModuleWrapper.getCo
2025-07-06 11:13:53.974 2400-5057 p.shell_android com.test.shell_android A java_vm_ext.cc:591] JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoSuchMethodError: no static or non-static method "Lcom/swmansion/rnscreens/NativeProxy;.initHybrid()Lcom/facebook/jni/HybridData;"
java_vm_ext.cc:591] (Throwable with no stack trace)
java_vm_ext.cc:591]
java_vm_ext.cc:591] in call to NewGlobalRef
java_vm_ext.cc:591] from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class)
I'm not sure whether the library is incompatible with a Brownfield architecture or if I'm missing some specific configuration. I would really appreciate your support in resolving this issue. This issue only occurs on Android; I don't experience this problem on iOS.
Reproducible Demo
- Create a new project using: npm create @rnef/app enterprise
- Create a basic navigation flow using this libraries:
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
...
<GestureHandlerRootView style={{ flex: 1 }}>
<SafeAreaProvider>
<NavigationContainer>
<Stack.Navigator
initialRouteName="Home"
...
- Run npm start
- Run npm run package:android
- Import the .aar into the native android app
- Open the app and navigate to the react native library
gregoranaya
Metadata
Metadata
Assignees
Labels
No labels