title: React Native, 'is not usable as a native method argument'
body: <p>I'm new to React Native. While I was developing a native module, I encounter a problem with callbacks. 
  Below is the error message from React Native</p>
  
  <pre><code>02-05 17:43:26.387 32301-32570/com.awesomeproject2 E/ReactNativeJNI: Got JS Exception: Exception calling object as function: abc,function f1() {
                                                                                 _ToastExample2.default.show('1111', _ToastExample2.default.SHORT);
                                                                               },72,73 is not usable as a native method argument (&lt;unknown file&gt;:1845)
  02-05 17:43:26.387 32301-32570/com.awesomeproject2 E/ReactNativeJNI: Got JS Stack: invariant@http://localhost:8081/index.delta?platform=android&amp;dev=true&amp;minify=false:1838:26
                                                                       enqueueNativeCall@http://localhost:8081/index.delta?platform=android&amp;dev=true&amp;minify=false:2259:20
                                                                       fn@http://localhost:8081/index.delta?platform=android&amp;dev=true&amp;minify=false:1999:40
                                                                       onBtnPress@http://localhost:8081/index.delta?platform=android&amp;dev=true&amp;minify=false:58362:32
                                                                       proxiedMethod@http://localhost:8081/index.delta?platform=android&amp;dev=true&amp;minify=false:34324:37
                                                                       proxiedMethod@[native code]
                                                                       touchableHandlePress@http://localhost:8081/index.delta?platform=android&amp;dev=true&amp;minify=false:37170:47
                                                                       touchableHandlePress@[native code]
                                                                       _performSideEffectsForTransition@http://localhost:8081/index.delta?platform=android&amp;dev=true&amp;minify=false:36821:36
                                                                       _performSideEffectsForTransition@[native code]
                                                                       _receiveSignal@http://localhost:8081/index.delta?platform=android&amp;dev=true&amp;minify=false:36754:46
                                                                       _receiveSignal@[native code]
                                                                       touchableHandleResponderRelease@http://localhost:8081/index.delta?platform=android&amp;dev=true&amp;
  02-05 17:43:26.393 32301-32570/com.awesomeproject2 E/unknown:ReactNative: Exception in native call
                                                                            java.lang.RuntimeException: Error calling RCTEventEmitter.receiveTouches
                                                                                at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
                                                                                at android.os.Handler.handleCallback(Handler.java:739)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
                                                                                at android.os.Looper.loop(Looper.java:135)
                                                                                at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:194)
                                                                                at java.lang.Thread.run(Thread.java:818)
                                                                             Caused by: com.facebook.jni.CppException: Exception calling object as function: abc,function f1() {
                                                                                      _ToastExample2.default.show('1111', _ToastExample2.default.SHORT);
                                                                                    },72,73 is not usable as a native method argument (&lt;unknown file&gt;:1845)
                                                                              ... 7 more
  </code></pre>
  
  <p>And my native module look like this</p>
  
  <pre><code>@ReactMethod
  public void testCallback(String message, Callback c1, Callback c2, Callback c3) {
      if (message.equals("123")) {
          c1.invoke(message);
      } else if (message.equals("abc")) {
          c2.invoke(message);
      } else {
          c3.invoke(message);
      }
  }
  </code></pre>
  
  <p>And my calling function from react</p>
  
  <pre><code>onBtnPress() {
  
    function f1 () {
      ToastExample.show('1111', ToastExample.SHORT);
    };
  
    function f2 () {
      ToastExample.show('2222', ToastExample.SHORT);
    };
  
    function f3 () {
      ToastExample.show('3333', ToastExample.SHORT);
    };
  
    ToastExample.testCallback('abc', f1, f2, f3);
  }
  </code></pre>
  
  <p>I have no idea that why this error is happening, can someone help me? Thanks.</p>