使用Expo ESA构建APK后应用崩溃问题及解决方案
Expo ESA构建APK启动崩溃(本地运行正常)的解决方法
我在使用Expo开发React Native应用时遇到了一个棘手问题:本地通过expo start运行完全正常,但用Expo ESA构建的APK安装到手机后,每次打开都会直接崩溃,报错信息如下:
com.facebook.react.common.JavascriptException: TypeError: undefined is not a function, js engine: hermes, stack: anonymous@1:1143129 loadModuleImplementation@1:106186 guardedLoadModule@1:105735 metroRequire@1:105363 anonymous@1:1142534 loadModuleImplementation@1:106186 guardedLoadModule@1:105735 metroRequire@1:105363 anonymous@1:724292 loadModuleImplementation@1:106186 guardedLoadModule@1:105735 metroRequire@1:105363 anonymous@1:112516 loadModuleImplementation@1:106186 guardedLoadModule@1:105692 metroRequire@1:105363 global@1:104947 at com.facebook.react.modules.core.ExceptionsManagerModule.reportException(ExceptionsManagerModule.java:72) at java.lang.reflect.Method.invoke(Native Method) at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372) at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:188) at com.facebook.jni.NativeRunnable.run(Native Method) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27) at android.os.Looper.loopOnce(Looper.java:210) at android.os.Looper.loop(Looper.java:299) at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:228) at java.lang.Thread.run(Thread.java:1012)
试过这些方法都没解决问题:
- 执行
expo doctor检查项目配置 - 更新所有依赖包
- 接入Sentry监控,但崩溃时未生成任何日志
最终解决方案
耗时一周终于找到问题根源——之前误将package-lock.json加入了.gitignore文件,把它从.gitignore中移除后,重新构建APK安装,应用就能正常启动了。
内容的提问来源于stack exchange,提问作者saed hossam
相关产品推荐
相关产品推荐

