react-native - 为什么我的应用程序在调试模式下完美运行而在发布模式下崩溃?
问题描述
嘿,我是 react native 的新手我创建了一个应用程序,当我调试它时一切正常,但是当我构建它时它在屏幕上崩溃并给我这个错误
2019-07-05 12:29:53.403 21905-21925/? E/AndroidRuntime:致命异常:mqt_native_modules 进程:com.foo,PID:21905 com.facebook.react.common.JavascriptException:需要未知模块“./locale/fr”。,堆栈:h@2:1448 d@2: 868 Dt@714:16712 Tt@714:17738 Yt@714:16801 n@713:2042 Sn@90:30120 或@90:45887 na@90:72881 ra@90:73371 Oa@90:80972 Wa@90: 80310 Ue@90:83367 De@90:13673 We@90:13846 receiveTouches@90:14605 value@28:3311 @28:822 value@28:2565 value@28:794 value@-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
});
}
}
}
}
解决方案
我也遇到了这个问题,并通过降级 to 的版本moment
来修复它2.18.1
。
如果您正在使用,moment-timezone
那么您需要在您的package.json
"resolutions": {
"moment-timezone/moment": "2.18.1"
},
推荐阅读
- jquery - 如何使用第一个类型
- asp.net-core - 通过launchSettings.json 设置环境变量。在测试项目中
- r - 如何从 RNA seq 差异基因表达数据中创建一列热图
- mysql - 使用时间戳编写 SQL
- vue.js - 如何使字段独立?
- r - 使用 s2dverifications 包中的加载功能时,CDO 库不可用
- c++ - 您可以将一个宏作为参数提供给另一个宏,而不扩展初始宏吗?
- heroku - Heroku,无法访问 jarfile。再次
- android - 如何使用 Android 的 Layout 机制创建输入框?
- fiddlercore - 错误 - 未能将 Fiddler 注册为系统代理