App crashes after SDK update on real device

Please provide the following:

  1. SDK Version: 40
  2. Platforms(Android/iOS/web/all): Android

On my app first screen, on TextInput Focus, my app crashes. I have removed ref, onChange, onTextChange, onFocus and still crashes. It works fine on expo but not on the generated apk, meaning, on expo I can use it but once I generate the apk, it crashes as explained. It was after I updated expo SDK. There’s a button to a webview and it works, but on textInput focus it crashes.

What should I do?

Hey @jaquedeveloper, I would recommend becoming familiar with the Debugging guide we wrote up in our docs that gives you some suggested steps based on what type of errors or crashes you are encountering.

Cheers,
Adam

Hello Adam, thanks, I’ve edited the description.

Hi

Does it also crash if you run it like this? This will emulate more closely what happens in a standalone app. (This one is mentioned in the documentation that Adam referred to):

expo start --no-dev --minify

Do you see any errors in the logs if you run adb logcat while the phone is plugged in with a USB cable and USB debugging is enabled?

Otherwise see if some of the other info in the documentation that Adam referred to helps to get more info.

I get a warning with 3 errors:

[Unhandled promise rejection: Error: Exception in HostFunction: Malformed calls from JS: field sizes are different.]

* [native code]:null in <unknown>

- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:317:6 in enqueueNativeCall

- node_modules/react-native/Libraries/BatchedBridge/NativeModules.js:105:8 in Promise$argument_0

- node_modules/react-native/node_modules/promise/setimmediate/core.js:45:6 in tryCallTwo

- node_modules/react-native/node_modules/promise/setimmediate/core.js:200:22 in doResolve

- node_modules/react-native/node_modules/promise/setimmediate/core.js:66:11 in Promise

- node_modules/react-native/Libraries/BatchedBridge/NativeModules.js:104:13 in promiseMethodWrapper

- node_modules/@unimodules/react-native-adapter/build/NativeModulesProxy.native.js:15:23 in moduleName.methodInfo.name

- node_modules/expo-error-recovery/build/ErrorRecovery.fx.js:9:32 in ErrorUtils.setGlobalHandler$argument_0

- node_modules/regenerator-runtime/runtime.js:45:36 in tryCatch

- node_modules/regenerator-runtime/runtime.js:271:29 in invoke

- node_modules/regenerator-runtime/runtime.js:45:36 in tryCatch

- node_modules/regenerator-runtime/runtime.js:135:27 in invoke

- node_modules/regenerator-runtime/runtime.js:170:16 in Promise$argument_0

- node_modules/react-native/node_modules/promise/setimmediate/core.js:45:6 in tryCallTwo

- node_modules/react-native/node_modules/promise/setimmediate/core.js:200:22 in doResolve

- node_modules/react-native/node_modules/promise/setimmediate/core.js:66:11 in Promise

- node_modules/regenerator-runtime/runtime.js:169:15 in callInvokeWithMethodAndArg

- node_modules/regenerator-runtime/runtime.js:192:38 in enqueue

- node_modules/regenerator-runtime/runtime.js:216:8 in exports.async

- node_modules/expo-error-recovery/build/ErrorRecovery.fx.js:9:32 in ErrorUtils.setGlobalHandler$argument_0

- node_modules/react-native/Libraries/polyfills/error-guard.js:49:36 in ErrorUtils.reportFatalError

- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:366:8 in __guard

- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:108:4 in callFunctionReturnFlushedQueue

* [native code]:null in callFunctionReturnFlushedQueue

I’ve changed the initial screen to check it it was a TextInput issue and it is not. The same problem occurs and the app closes. The only screen where it doesn’t occur is on the webview. I’ve downgraded to sdk 39, still no success. My app was SDK 36 and I’ve updated to 40. After it, it doesn’t works anymore. The expo version shows warnings like the above, but still works, not the apk.

How can I fix it?
How can I find where is the problem? Logs doesn’t show it…

I’ve not encountered warnings/errors like that before.

What I would do is roll back to the version before the upgrades, then upgrade to SDK 37. Make sure that works. Then upgrade to SDK 38. Make sure that works. Then upgrade to SDK 39. Make sure that works. etc. At each step, make sure you read through the blog post and changelog about the SDK you’re upgrading to to check for breaking changes.

By the way, are you saying that you get those warnings after using expo start --no-dev --minify and you do not get them when using just expo start? It’s not clear from your replies whether you tried expo start --no-dev --minify.