little-snow-fox / react-native-wechat-lib

🚀 WeChat login, share, favorite and payment for React-Native on iOS and Android
MIT License
662 stars 129 forks source link

Android Release包运行直接崩溃,提示RCTWeChat.registerApp got 2 arguments, expected 3 #146

Closed ss2012 closed 3 years ago

ss2012 commented 3 years ago

2021-02-01 10:09:01.962 7574-7897/? E/unknown:ReactNative: CatalystInstanceImpl caught native exception com.facebook.react.bridge.NativeArgumentsParseException: RCTWeChat.registerApp got 2 arguments, expected 3 at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:349) at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151) at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method) at android.os.Handler.handleCallback(Handler.java:900) at android.os.Handler.dispatchMessage(Handler.java:103) at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27) at android.os.Looper.loop(Looper.java:219) at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226) at java.lang.Thread.run(Thread.java:929) 2021-02-01 10:09:01.962 7574-7897/? E/unknown:DisabledDevSupportManager: Caught exception com.facebook.react.bridge.NativeArgumentsParseException: RCTWeChat.registerApp got 2 arguments, expected 3 at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:349) at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151) at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method) at android.os.Handler.handleCallback(Handler.java:900) at android.os.Handler.dispatchMessage(Handler.java:103) at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27) at android.os.Looper.loop(Looper.java:219) at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226) at java.lang.Thread.run(Thread.java:929)

代码微信注册是wechat.registerApp('appid', 'universalLink'),这是什么原因,参数都填了啊

changweining commented 3 years ago

你在其他页面肯定有没写universalLink的地方,自己查查

evan0204 commented 3 years ago

遇到此问题,经过测试验证,在 registerApp时,填入 universalLink 参数,第一次发版App包无问题,但在热更新后,出现此问题,于是通过ios(需要) /android (不需要) 平台不同,选择性填入此参数。目前测试正常可行。

const universalLink = Platform.select({ ios: 'https://xxxx.com', android: undefined, });