Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Exception in 'NativeModules': java.lang.RuntimeException: Got unknown argument class: Object

I am trying to call a native ReactMethod from react native but it is throwing the following error:

C++ Exception in 'NativeModules': java.lang.RuntimeException: Got unknown argument class: Object

This is how I have the method defined in android:

@ReactMethod
public void setItem(String key, Object value) {
    // code
}

This is how i am calling this method:

MyModule.setItem("mykey", "1234567890");

I wonder if ReactMethod supports object type as parameter or not? Because I want to set any type of item.

like image 265
Praneeth Avatar asked Dec 15 '16 21:12

Praneeth


2 Answers

According to the documentation, the following argument types are supported for methods annotated with @ReactMethod. The argument types directly map to their JavaScript equivalents.

Boolean -> Bool
Integer -> Number
Double -> Number
Float -> Number
String -> String
Callback -> function
ReadableMap -> Object
ReadableArray -> Array

In your case you could use a ReadableMap as argument, which maps on the JavaScript Object type.

like image 70
Stofkn Avatar answered Sep 19 '22 19:09

Stofkn


You can use Dynamic type, which is actually not documented.

like image 35
idearibosome Avatar answered Sep 17 '22 19:09

idearibosome