【问题标题】:Upgrading from Cordova 2.5 to Cordova 3.0 , facing issue while using CordovaInterface从 Cordova 2.5 升级到 Cordova 3.0 ,在使用 CordovaInterface 时遇到问题
【发布时间】:2013-12-03 15:15:43
【问题描述】:

我正在将我的项目从 Cordova 2.5 迁移到 Cordova 3。遵循

中提到的迁移过程

http://cordova.apache.org/docs/en/3.0.0/guide_cli_index.md.html

但是,不幸的是得到以下错误

准备android项目[错误:没有找到扩展的Java文件 CordovaActivity。]

在我们的应用程序中,我们有一个扩展活动并实现 CordovaInterface 的类。而且这个类在config.xml中提到的位置。

然而,我面临以下错误。 是否必须将 CordovaInterface 替换为 CordovaActivity? 我很确定这不是强制性的情况。

【问题讨论】:

  • 您是要等待更好的答案还是其中之一会这样做?

标签: android cordova cordova-3


【解决方案1】:

这是由一个愚蠢的、损坏的 Cordova 构建系统引起的。

如果您只是在源代码树中添加任何旧类,在您的活动旁边,扩展 CordovaActivity,构建将起作用。 您甚至不必使用该类,只需制作一个即可。

就像他们在内部争论它应该如何工作,如果他们没有按照自己的方式构建失败,一方就会搞砸另一方。

例子:

import org.apache.cordova.CordovaActivity;

/**
 * This class is simply here to make sure Cordova will build. Without it, even
 * though it's not used or otherwise referenced, you will get a build error that
 * looks like "Error: No Java files found which extend CordovaActivity".
 * 
 * This applies as of Cordova 3.5.0. It should be re-tested when upgrading to
 * Cordova 4.x.
 * 
 */
public class FakeCordovaActivityForBuild extends CordovaActivity {

}

幸运的是,开发团队中的某个人会注意到这个小冲突并修复它,我想它应该被列为他们系统中的错误,但我没有添加它。

【讨论】:

  • 为了记录,这在 Cordova 4.0 中仍然被打破。痛苦。我按照建议创建了空白类,并确保 ProGuard 在构建时将其删除。
【解决方案2】:

有趣的是,将 CordovaInterface 替换为 CordovaActivty(以及适当的更改)解决了该问题。发行说明文档中没有提到强制使用 CordovaActivity。

但是,需要改进扩展 CordovaActivity 的 Java 文件中的代码。

【讨论】:

  • 这对我来说真的很痛苦。如果我要嵌入 Cordova,我不希望它作为主要活动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-11
相关资源
最近更新 更多