在使用“cordova build”命令时出现“未找到扩展CordovaActivity的Java文件”的错误。

69
我的电脑是Windows 8 64位操作系统,我安装了Cordova和Android平台来完成我的项目。我通过输入命令cordova create hello com.example.hello HelloWorldcordova platform add android来创建了我的项目,但在运行cordova build时,出现以下错误:[Error: No Java files found which extend CordovaActivity.]。我在网上搜索了一些解决方案,但还没有找到答案。这个问题是什么?

你是如何安装Cordova的?在运行命令时,你是否连接到互联网?你可以尝试在所有命令中加上“-d”标志并发布输出结果吗? - MBillau
15个回答

133

当我从另一个项目克隆我的存储库时,出现了相同的错误。我通过删除平台并再次添加来解决它。

删除:cordova platform rm android
添加:cordova platform add android


3
那真是太有帮助了,谢谢你! - Rob
在执行了cordova clean之后,我也遇到了这个问题...不管怎样,这个解决方法有效,我认为应该被接受。 - isync
1
谢谢。问题已解决! - Chamara Indrajith
当我更新了我的ionic项目manifest.xml的edit-config时,遇到了问题。在按照答案操作后,问题得到了解决。 - Nickr

26

您只需要执行以下命令移除平台 cordova platform rm android,然后再通过输入cordova platform add android来重新添加该平台,这样错误就会消失了。


19

在将平台添加后更改config.xml文件中的ID时通常会发生此问题:

<widget id="changed-this-id" ... 

需要修复:

remove : cordova platform rm android
add : cordova platform add android

1
这个解释让人更容易理解。谢谢。 - EnigmaTech

16
在Eclipse或其他编辑器中,进入 platforms/android/src/ 目录下的 .java 源文件,并确保该类扩展了 CordovaActivity(它可能先前扩展了 DroidGap)。

1
感谢@hyperizer - 你在Stack Overflow上的唯一贡献,但它救了我! - jackocnr
谢谢!在从2.x升级时遇到了相同的问题。例如更改: public class Your_App_Name extends DroidGap 为: public class Your_App_Name extends CordovaActivity - Jim Bergman
2
这不适用于混合应用程序,如果您不使用CordovaActivity。 - Brill Pappin
我正在使用ionic v5,但在platforms/android/src/目录下找不到.java源文件。请问该文件在哪里可以找到? - Huthaifah Kholi

14

我遇到了同样的问题(尽管在Ubuntu上),并尝试了Hyperizer的解答,这应该是有效的......但对我没有任何影响。请注意,我在升级cordova(从3.0.9到3.4.0-0.1.3)后出现了错误,因此我生成的平台文件夹与最新的cordova版本不同步。

我发现最干净的做法(这对我有用)是删除/platforms/android目录(按照cornelius的答案...但我的重点是cordova),然后使用cordova重新创建,这样你就知道一切都是最新的,并且与当前版本的cordova保持一致。

cd platforms
rm -rf android
cd ..
cordova platform add android

您的android文件夹已被重新创建,现在请尝试再次构建和运行。

cordova build android
cordova emulate android

重新创建 Android 平台文件夹的缺点是需要重新应用您可能对 Android 源代码所做的任何自定义设置...(幸运的是,我不必这样做),但是然后你应该能够从你的 git 中拉取此内容。至少现在,您正在使用一个干净、整洁、最新的版本。


10
这个错误是我在config.xml文件中将包ID名称从io.cordova..etc更改为另一个包名称时发生的。因此,我通过从config文件中删除android平台并更改版本信息和包名称来解决它,并运行android cordova平台添加android命令。

8
当您在config.xml中更改了软件包ID或名称时会出现此错误。所有您需要做的就是通过输入“Cordova platform rm android”来删除Android平台,然后通过输入“Cordova platform add android”重新添加该平台。这样可以使构建成功。

7

拓展CordovaActivity的Activity所在的.java文件必须精确地位于com.example.app目录下,如在config.xml中id为"com.example.app"标签中指定。

在3.2.0版本中发生了更改 - 提交了一个错误报告:https://issues.apache.org/jira/browse/CB-5515


我遇到了同样的问题。我无法编译,当尝试使用CLI运行应用程序时,会出现“未找到扩展cordovaactivity的Java文件”的错误提示。是否有命令可以运行以获取所需的文件?我在phonegap网站上无法找到它们的下载链接。 - nomaam
您已经拥有了.java文件 - 它位于Cordova Android项目的/src文件夹的子文件夹中 - 搜索"CordovaActivity"。--> 将此java文件中的活动包名称更改为全局Cordova config.xml id标记中指定的ID,例如“com.example.app”。 - Michael Schmidt
你可以随时降级到2.9.1版本,命令为npm install -g phonegap@2.9.0-rc1-0.12.2 - Aleks

6

关于PhoneGap 3.2引起相同错误的相关主题,有可能是您在配置和初始运行时弄错了应用程序。

对我来说有效的方法是删除生成的安卓平台文件,然后再次运行RUN命令。因此,请从您的PhoneGap项目主目录执行以下操作:

cd platforms
sudo rm -rf android
cd ..
sudo phonegap local run android --emulator

我正在使用OSX版本为10.9的Macbook Pro进行工作。

希望这能帮助到某些人!


对我有用。我的问题是在platforms\android\src\com\MyCom\MyApp缺少了一个MyApp.java文件,通过删除Android平台文件并重新构建/运行来恢复该文件。 - Keith

3

移除平台并重新添加。这对我起作用:

移除:

cordova platform rm android

然后添加:

cordova platform add android

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