非常奇怪的Cordova/Phonegap JSON错误:JSON中位置0处有意外的令牌。

6

我最近几周一直在开发一个应用程序。我以前从未涉及过任何json文件。今天我尝试运行我的应用程序,但Cordova显示了一个非常奇怪的错误,错误信息为:

Error: Unexpected token   in JSON at position 0

这个token是' '吗?它对应哪个JSON文件?我已经查看了所有主要的Json包文件,它们都以第0个token为'{'开头。

我完全迷失了,那天我什么也没做,没有添加插件或其他东西,它就突然出现了。我不知道应该附加哪些json文件在这里,项目目录中有数十个文件.. 有任何想法或方向将非常有帮助,谢谢。


你能提供一些关于错误的背景信息吗?在 VS TACO 中,我会建议你发布构建输出,但我不知道你正在使用哪个 IDE。在典型的 Cordova 应用程序中有许多 JSON 文件 - 你使用的每个插件都有一个 package.json 文件,还有一个 build.json 文件。希望这些上下文信息能帮助缩小范围。 - MStoner
1
删除后再重新添加平台有帮助吗? - huggie
4个回答

4

检查plugins/*.json文件

很可能其中一个文件中隐藏了问题。

对我来说,问题出在fetch.json文件中未解决的合并冲突。


1
我也遇到了这个问题,但在我明确运行了“npm install”之后,它就消失了。 - Joost Schuur
谢谢!我花了几个小时在git中查找所有修改过的文件,清理并重新安装插件和npm。如果不是在fetch.json中,我就找不到它了。 - Muz

2
运行npm install,它会给你更多的错误细节。在我的情况下,是package.json中有一个额外的逗号。这是一个痛苦的错误,我希望cordova能明确说明这个问题的所在!

0

我的处理JSON错误的方法:

  1. [可选] 删除/卸载所有插件

  2. 删除所有平台目录文件夹(例如 browser,Android,iOS 等),并删除 package.json 文件

    注意:不要删除 package-lock.json 文件

  3. 通过在命令行上运行 npm init(在 Cordova 项目目录中运行此命令)创建一个新的 package.json 文件。

    确保使用与之前相同的包名称创建此文件。如果记不清了,可以检查 config.xml 文件(包括“版本”)。

  4. 重新安装所有插件(如果您执行了第1步)。

  5. 添加您的平台。

  6. 运行、构建您的 Cordova 项目。

    • 如果失败,请按照步骤1到最后一步操作。

    • 它百分之百地起作用

    • 如果这样不起作用,请联系我并发送给我您的问题。


0

你需要检查Plugins文件夹中的fetch.json文件。Fetch.json必须以UTF8编码,并且在JSON末尾,文件需要正确地结束,不能有逗号,像这样:

{
  "es6-promise-plugin": {
    "source": {
      "type": "registry",
      "id": "es6-promise-plugin@^4.1.0"
    },
    "is_top_level": false,
    "variables": {}
  },
  "cordova-plugin-nativestorage": {
    "source": {
      "type": "registry",
      "id": "cordova-plugin-nativestorage@^2.3.2"
    },
    "is_top_level": true,
    "variables": {}
  } //No Comma
}

祝你好运!


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