React Native Android应用程序在启动时崩溃

3

enter image description here

我的应用程序在启动时崩溃了。在iOS上正常工作。

以下是package.json文件内容

{
  "name": "Leave",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest",
    "postinstall": "remotedev-debugger --hostname localhost --port 5675 --injectserver"
  },
  "dependencies": {
    "moment": "^2.18.1",
    "native-base": "2.1.1",
    "react": "16.0.0-alpha.6",
    "react-native": "0.43.4",
    "react-native-actionsheet": "^2.1.0",
    "react-native-elements": "0.10.3",
    "react-native-fs": "^2.1.0-rc.1",
    "react-native-i18n": "^1.0.0",
    "react-native-loading-spinner-overlay": "^0.4.4",
    "react-native-maps": "^0.15.2",
    "react-native-message-bar": "^1.6.0",
    "react-native-modal-datetime-picker": "4.2.1",
    "react-native-vector-icons": "4.0.0",
    "react-redux": "5.0.3",
    "redux": "3.6.0",
    "redux-thunk": "2.2.0",
    "superagent": "^3.5.2"
  },
  "devDependencies": {
    "babel-jest": "19.0.0",
    "babel-preset-react-native": "1.9.1",
    "flow-bin": "0.42.0",
    "jest": "19.0.2",
    "react-native-dotenv": "0.0.3",
    "react-test-renderer": "15.4.2",
    "remote-redux-devtools": "^0.5.10",
    "remote-redux-devtools-on-debugger": "^0.7.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

以下是来自logcat的日志记录
com.facebook.react.bridge.UnexpectedNativeTypeException: TypeError: expected dynamic type `int64', but had type `null'
                                                                 at com.facebook.react.bridge.ReadableNativeMap.getInt(Native Method)
                                                                 at com.facebook.react.devsupport.StackTraceHelper.convertJsStackTrace(StackTraceHelper.java:104)
                                                                 at com.facebook.react.devsupport.DevSupportManagerImpl$3.run(DevSupportManagerImpl.java:290)
                                                                 at android.os.Handler.handleCallback(Handler.java:739)
                                                                 at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                 at android.os.Looper.loop(Looper.java:148)
                                                                 at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

请帮忙。

我尝试了这个 https://github.com/facebook/react-native/issues/5646,但对我来说没有起作用。


1
检查adb logcat的输出,通常会有一些有用的指针。 - martinarroyo
logcat日志已添加 - Nikhil
看起来 JavaScript 中正在使用错误的参数(即 null 而不是 Number)调用某些本地代码。您应该检查您的代码,然后检查是否有任何依赖项触发了错误。 - martinarroyo
问题出在react-native-maps,而不是参数错误。 - Nikhil
2个回答

3
我找到了问题,问题出在react-native-maps上。下面是修复方法。
更新:
"react-native-maps": "^0.15.2"

为了

"react-native-maps": "0.15.2".

我认为在将来的其他依赖关系中,“^”符号可能会导致问题。因此,我已经从我的Package.json文件中删除了它们。


顺便问一下,在 package.json 中 ^ 是什么意思? - Felix
@Felix “^” 表示它会自动更新到下一个次要版本。 - RajnishCoder

1
我遇到了同样的问题,Nikhil的回答让我找对了方向,但不幸的是另一个依赖项导致了崩溃。
我花了一些时间来确定它,下面是我的步骤。
第一步:在package.json中删除每个依赖项版本号之前的^。
第二步:在一个依赖项版本号之前添加^。
第三步:从node_modules中删除依赖项并重新安装它(npm i)。
第四步:重新启动包管理器和应用程序,如果没有崩溃,转到第二步。
可选步骤:修复依赖关系并发送合并请求:)
希望这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接