在 Visual Studio 中导入工作的科尔多瓦项目给出错误

Posted

技术标签:

【中文标题】在 Visual Studio 中导入工作的科尔多瓦项目给出错误【英文标题】:Import working cordova project in Visual Studio giving errors 【发布时间】:2016-04-04 11:54:30 【问题描述】:

TL;DR 当我在 Visual Studio 中导入现有的 Cordova 项目并在浏览器中运行应用程序(通过 Ripple)时,我会收到以下错误: PushPlugin.register - We seem to be missing some stuff :(

完整解释: 首先为这篇长篇道歉,我想包含尽可能多的信息! 我有一个使用 Ionic、Cordova 和 Ripple 运行的 Cordova 应用程序。我使用 Ripple 在浏览器中模拟移动设备。

当我在 Sublime Text Editor 中测试并使用 ripple emulate 运行时,所有功能都可以完美运行。 当我尝试在 Visual Studio 中导入项目时,它运行不顺畅。

我将分步解释我做了什么,因为也许我在某个特定步骤中遗漏了一些东西。

步骤 1

这是我在 Sublime 项目(不是 Visual Studio)中的 config.xml 中的代码。

<gap:plugin name="cordova-plugin-file" source="npm" />
<gap:plugin name="cordova-plugin-file-transfer" source="npm" />
<gap:plugin name="cordova-plugin-device" source="npm" />
<gap:plugin name="cordova-plugin-inappbrowser" source="npm" />
<gap:plugin name="com.phonegap.plugins.pushplugin" version="2.4.0" />

这是 Visual Studio 中的 config.xml。注意com.phonegap.plugins.PushPlugin。这是 github 上的一个插件,但我只能找到指向 2.5 版本的直接链接。我设法将 zip 下载到 2.4 版本,所以我通过这种方式添加了它。

<plugin name="cordova-plugin-file" version="4.1.1" />
<plugin name="cordova-plugin-file-transfer" version="1.5.0" />
<plugin name="cordova-plugin-device" version="1.1.1" />
<plugin name="cordova-plugin-inappbrowser" version="1.2.1" />
<plugin name="com.phonegap.plugins.PushPlugin" version="2.4.0" src="D:\Dev\A\VisualStudioApp\VisualStudioApp\local-plugins\PushPlugin-2.4.0" />
<plugin name="cordova-plugin-websql" version="0.0.10" />

第二步

这是我的 Sublime 文本编辑器中的文件夹结构:

<DIR>          fonts
<DIR>          icons
<DIR>          images
<DIR>          iscroll
<DIR>          jquery-mobile
<DIR>          js
-   <DIR>          app
-   <DIR>          lib
<DIR>          platforms
<DIR>          res
<DIR>          slickgrid
<DIR>          styles
<DIR>          testdata
        27 295 MobileProject.jsproj
           588 MobileProject.jsproj.user
         4 115 config.xml
           999 config.xml.bak
           938 config.xml.vs
       222 115 cordova.android.js
       209 664 cordova.ios.js
        60 180 cordova.js
             2 cordova_plugins.js
         1 142 footer.html
           313 header.html
           212 index.html
        67 607 main.html

这是 Visual Studio 中的文件夹结构:

<DIR>          bin
<DIR>          bld
<DIR>          local-plugins
<DIR>          merges
<DIR>          platforms
<DIR>          plugins
<DIR>          res
<DIR>          testdata
<DIR>          www
-   <DIR>          fonts
-   <DIR>          icons
-   <DIR>          images
-   <DIR>          iscroll
-   <DIR>          jquery-mobile
-   <DIR>          js
    -    <DIR>          app
    -    <DIR>          lib
-   <DIR>          slickgrid
-   <DIR>          styles
-            1 142 footer.html
-              313 header.html
-              212 index.html
-           67 607 main.html
        131 .gitignore
         75 bower.json
        225 build.json
      6 686 VisualStudioApp.jsproj
        309 VisualStudioApp.jsproj.user
      7 146 config.xml
        122 package.json
    124 250 Project_Readme.html
         34 taco.json

第三步

在 Android 上运行应用程序

这是我的控制台日志给我的:GET http://localhost:4400/config.xml 404 (Not Found) ripple.js:51No Content-Security-Policy meta tag found. Please add one when using the cordova-plugin-whitelist plugin. whitelist.js:24

旁注

当我添加插件,但不将代码从 Sublime 复制到 Visual Studio 时,不会显示任何错误。 当我在 Windows-AnyCPU(本地计算机)上运行应用程序时,应用程序将启动并几乎立即关闭。 在调试模式下,我在运行开始时遇到了异常:

SCRIPT5022: Unhandled exception at line 59, column 13 in ms-appx://io.cordova.myapp4a33c5/www/cordova.js 0x800a139e - Runtime-fout javascript: module cordova/windows8/commandProxy not found cordova.js (59,13) 这是什么cordova/windows8/commandProxy

【问题讨论】:

【参考方案1】:

(我假设您安装了正确版本的 Node)

您拥有什么版本的 Visual Studio?我正在使用 Visual Studio 2015,这是我导入项目所采取的步骤。

    将其解压缩到我希望我的项目所在的位置。 在 Visual Studio 菜单文件 --> 打开 --> 项目/解决方案并选择所有文件所在的文件夹。 您将在解决方案下方看到向上箭头图标显示“依赖项”。展开它,您将看到 2 个文件夹 Bower 和 NPM。右键单击并选择还原包。这可能需要一些时间。

之后,尝试使用命令版本并使用“ionic serve”。这应该把它带到一个网页上。

对于您的 Cordova 代理问题,请查看以下链接 cordova windows error: “cordova/windows8/commandProxy” not found

希望这会有所帮助。

【讨论】:

【参考方案2】:

看看我的回答here。虽然不是完全相同的错误信息,但问题是一样的。

Ripple 不是对真实设备的完整模拟,不支持许多插件,例如您正在使用的 PushPlugin。尝试在真实设备或模拟器上运行您的应用来修复错误。

【讨论】:

那里的有效点。问题是我想制作一个 Windows 应用程序,我通常应该能够在 Visual Studio 中运行它。但我得到的只是 Cordova 的加载屏幕,然后应用程序立即关闭。 好的,您在哪个 Windows 版本上运行?您是否已配置 config.xml 以匹配您的 Windows 版本?就像 Windows 10 的 &lt;preference name="windows-target-version" value="10.0" /&gt;...

以上是关于在 Visual Studio 中导入工作的科尔多瓦项目给出错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Blend for Visual Studio 2013 中导入为矢量图形

在 Visual Studio 2012 中导入现有源文件

现有的OnsenUI在Visual Studio上工作

如何在android studio中导入react native项目

如何在 Android Studio 中导入模块而不创建副本

怎样在androidstudio中导入gson包