【问题标题】:How do I get Cordova 3.0 to recognize my own plugins in external project folders?如何让 Cordova 3.0 在外部项目文件夹中识别我自己的插件?
【发布时间】:2014-10-30 20:45:25
【问题描述】:

我能够使用特定于平台的工具为 Android 创建一个 Cordova 3.0 项目(我尝试了 CLI 方法,但无法使其工作)。我使用plugman 工具添加了标准核心插件。我的应用程序的index.html.js 插件文件似乎正在加载,因为我可以看到开始屏幕并在应用程序中执行一些基本操作。但是,调用数据库等高级功能无法正常工作,因为这些是我使用自己的自定义插件实现的。这些插件存在于他们的项目文件夹中,并作为库引用添加到主活动中(我在 Eclipse 中右键单击并选择Debug as Android application)。因此,它们在该特定项目的Java Build PathAndroid Dependencies 部分中显示为.jar 引用。我大约 90% 确定我的 .js 插件文件设置正确,因为我确实有一个插件,它是主要活动的 src 树中的一个包。这是唯一有效的插件。当我删除该软件包进行测试并尝试使用该插件功能时,它无法工作。

我的插件已正确添加到config.xml 文件中。至少对于主要活动的src 目录中存在的一个自定义插件。这是一个不工作的插件的例子:

<feature name="DBHelper_Plugin">
    <param name="android-package" value="com.cordova.plugin.dbhelper.DBHelper_Plugin" />
</feature>

是否可以使用外部文件夹中的第 3 方插件?如果是这样,怎么做?如果没有,除了将我的主要活动的src 树与一百万个插件包(就像现在的核心插件一样)混乱之外,我还有其他选择吗?

【问题讨论】:

  • 奇怪的是你无法使用 CLI(我发现 CLI 比使用 plugman 容易得多)。你的个人插件怎么样? (遵循plugman 结构和plugin.xml?)
  • 但最后我认为当你使用plugman或cli时,如果这让你感到困扰的话,一切都会被复制到项目中。我认为 jar 必须位于项目的“libs”文件夹中才能被 Android 看到。
  • @QuickFix 感谢您的建议。我没有为我的插件使用plugin.xml 文件,我认为不需要它们,因为我没有通过plugman 安装它们。我确实尝试将DBHelper_Plugin.jar 文件放入主活动的libs 目录中并且它有效(.jar 文件也包含在Android Private Libraries 中)。我想我现在的问题是,是否可以将这些库 .jar 文件添加为链接,而不是复制它们?为了清楚起见,我可以在没有 plugin.xml 文件的情况下使用我的插件。
  • 你是对的,plugin.xml 是用于plugman 的,如果你像你一样自己修改所有文件,则不需要。关于链接,如果你在谈论像ln -s 这样的命令,我看不出它为什么不起作用。也许有一种方法可以通过在 eclipse 中配置一些东西使其在没有操作系统链接的情况下工作,但我记得过去当 jar 位于 libs 文件夹之外时遇到问题。
  • @QuickFix 没关系,这是一个愚蠢的问题。我只是从插件项目目录的bin 文件夹中拖动.jar 文件,Eclipse 给了我一个选项来链接到该文件而不是复制它。问题解决了。感谢您的帮助。

标签: android eclipse cordova cordova-plugins


【解决方案1】:

对于可能也遇到此问题的任何人,这是我所做的:

  1. 从 Android 库引用中删除您的外部(在主活动的 src 目录之外)插件(右键单击主活动 > 属性 > Android > 从 Library 部分删除)。仅对插件项目本身执行此操作。
  2. 在 Windows 资源管理器的相应项目文件夹中的 bin 目录中找到您生成的插件 .jar 文件。如果它们不存在,请在 Eclipse 中构建项目。将它们拖到您的主要活动的libs 文件夹中。 Eclipse 将询问您是否要复制或链接这些文件。选择链接。
  3. 就是这样。插件现在将显示在Android Private Libraries 而不是Android Dependencies 下,Cordova 能够查看和使用它们(确保将它们作为feature 引用包含在您的config.xml 文件中)。由于它们是链接的,因此您可以在 Eclipse 中对插件进行更改,而不必担心再次复制它。

干杯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2015-12-08
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    相关资源
    最近更新 更多