为什么我的应用程序可以在调试模式下完美运行而在发布模式下崩溃?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我的应用程序可以在调试模式下完美运行而在发布模式下崩溃?相关的知识,希望对你有一定的参考价值。

嘿,我是React Native的新手,我创建了一个应用程序,当我对其进行调试时一切正常,但是当我构建它时,它在屏幕上崩溃并给我这个错误

2019-07-05 12:29:53.403 21905-21925 /? E / androidRuntime:致命例外:mqt_native_modules程序:com.foo,PID:21905com.facebook.react.common.javascriptException:需要未知模块“ ./locale/fr”。,堆栈:h @ 2:1448d @ 2:868DT @ 714:16712电话@ 714:17738Yt @ 714:16801n @ 713:2042锡@ 90:30120或@ 90:45887na @ 90:72881ra @ 90:73371OA @ 90:80972Wa @ 90:80310上@ 90:83367德@ 90:13673我们@ 90:13846receiveTouches @ 90:14605值@ 28:3311@ 28:822值@ 28:2565值@ 28:794值@ -1

    at com.facebook.react.modules.core.ExceptionsManagerModule.showOrThrowError(ExceptionsManagerModule.java:54)
    at com.facebook.react.modules.core.ExceptionsManagerModule.reportFatalException(ExceptionsManagerModule.java:38)
    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:158)
    at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
    at android.os.Handler.handleCallback(Handler.java:836)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
    at android.os.Looper.loop(Looper.java:203)
    at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:232)
    at java.lang.Thread.run(Thread.java:761)

这里是我的代码,当我在这里工作的时候,这里有两个地方:

import 'moment/locale/fr';
import moment from 'moment';

this.state = { 
      date: moment().locale('fr').format('dddd HH:mm');
}
and set the state to a Text 

第二个是这堂课

import 'moment/locale/fr';
import moment from 'moment';

componentDidMount() {
   console.log(this.props.hours[0].openAt); 
   const date = new Date();
   const day = date.getDay();
   moment.locale('fr');
   for (let i = 0; i < this.props.hours.length; i++) {
       if (this.props.hours[i].day === day) {
           const format = 'hh:mm';
           const time = moment(date, format);
           const beforeTime = moment(this.props.hours[i].openAt, format);
            const afterTime = moment(this.props.hours[i].closeAt, format);

           if (time.isBetween(beforeTime, afterTime)) {
             this.setState({
                 ouvert: true
             });
           } else {
               this.setState({
                   ouvert: false
               });
           }
       }
   }
   }
答案

我也面临这个问题,并通过将moment的版本降级为2.18.1来解决。

如果使用moment-timezone,则需要在package.json中添加以下内容:>

"resolutions": {
    "moment-timezone/moment": "2.18.1"
  },

参考:https://github.com/moment/moment/issues/4216

以上是关于为什么我的应用程序可以在调试模式下完美运行而在发布模式下崩溃?的主要内容,如果未能解决你的问题,请参考以下文章

选择发布模式时应用程序崩溃但在调试模式下完美运行

ios 应用程序在调试模式下完美运行,但在发布时崩溃

Xamarin App 在调试时运行,但在发布时崩溃

当我的应用程序无法在调试模式下运行,但 exe 文件可以正常运行时,这意味着啥?

为啥我的程序在发布模式下运行良好,但在调试模式下失败? [关闭]

为啥我的 websocket 请求只有在用 OOP 编写时才“未经授权”,而在仅使用函数编写时同样可以完美运行?