找不到扩展CordovaActivity的Java文件。当使用“cordova build”时

时间:2013-11-28 13:02:34

标签: java android cordova

我的电脑是Windows 8 64bit,我为我的项目安装了cordova和android平台,我已经通过输入cordova create hello com.example.hello HelloWorldcordova platform add android创建了我的项目 但是当我运行cordova build时,它会显示以下错误:

[Error: No Java files found which extend CordovaActivity.]

我在网上搜索但是还没找到解决方案,有什么问题?

15 个答案:

答案 0 :(得分:17)

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

答案 1 :(得分:14)

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

答案 2 :(得分:5)

关于 PhoneGap 3.2 导致相同错误的相关主题,可能是您在配置并尝试让它最初运行时可能搞砸了应用

对我有用的是删除生成的android平台文件,然后再次运行RUN命令。因此,从PhoneGap项目的主目录中,执行以下操作

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

我正在使用OSX版本10.9的Macbook Pro

希望这有助于某人!

答案 3 :(得分:3)

我有同样的问题(虽然在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等拉出来。至少现在你正在进行一个干净整洁的最新版本。

答案 4 :(得分:3)

你需要做的就是删除平台cordova平台rm android并通过输入cordova platform add android重新添加平台,错误就消失了

答案 5 :(得分:2)

带有扩展CordovaActivity的Activity的.java文件必须完全在com.example.app中 - 如config.xml的id =“com.example.app”标记中所指定的那样。

3.2.0中的更改 - 提交了错误报告:https://issues.apache.org/jira/browse/CB-5515

答案 6 :(得分:1)

对于使用“隐藏”CordovaActivity扩展的框架的任何人,我偶然发现了一个“解决方案”,即MainActivity看起来像这样:

public class MainActivity extends GDCordovaActivity {...}

其中 GDCordovaActivy 是扩展CordovaActivity的Framework Activity。

只需将“foo.java”文件添加到仅包含如下注释的项目中:

/** extends CordovaActivity */

由于cordova框架会解析文件并且无法识别评论,因此您可以在没有任何错误的情况下调用cordova android prepare等。

答案 7 :(得分:1)

由于缺少MainActivity.Java文件而导致此问题 通常它位于以下路径上。

[应用程序名称] \ platforms \ android \ src \ com

这里它应该具有基于您给出的命名空间的文件夹名称。 假设我已将命名空间命名为com.passion.oilfreerecipes 所以应该有文件夹激情 - > OilfreeRecipes

在他们内部你应该有MainActivity.Java。

当我清理解决方案时,它在我的应用程序中清除。 您可以从其他项目进行复制和粘贴,并根据需要更改mainActivity.Java。

答案 8 :(得分:0)

如果id中的android-packageNameconfig.xml不匹配,就会发生这种情况。

android-packageName="com.example.app" id="com.example.app"

答案 9 :(得分:0)

我有太多的自定义项,并且不想重新创建平台。

通过将widget id中的defaults.xml更改为新的包名称来解决此问题(我将默认的io.hellocordova更改为我自己的包结构)

答案 10 :(得分:0)

当我将config.xml中的包ID名称(例如io.cordova..etc)更改为另一个包名称时发生此错误,因此我通过删除android平台并更改了版本信息和包名来解决此问题配置文件,运行命令android cordova platform add android

答案 11 :(得分:0)

我通过重置JAVA环境解决了这个问题。

    $ sudo update-alternatives --config java

选择/usr/lib/jvm/java-1.8.0-openjdk-amd64的编号。

按Enter键保留当前选项[*]或类型选择号:

要选择默认的javac编译器,请运行以下命令。

    $ sudo update-alternatives --config javac

如果您更喜欢使用gui而不是命令行,则可以执行galternatives,并使用以下对话框定义软件的默认版本。

    $ sudo galternatives

答案 12 :(得分:0)

通常在添加平台后更改 config.xml 文件中的 id 时发生:

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

修复:

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

答案 13 :(得分:0)

当您在 config.xml 中更改包 id 或名称时会出现此错误,您需要做的就是通过键入“Cordova platform rm android”并重新添加平台来删除 android 平台通过键入“Cordova 平台添加 android”。您可以获得成功的构建。

答案 14 :(得分:-1)

遇到同样的问题,您只能删除平台中存在的文件夹,然后重写命令; cordova添加android --save,然后命令cordova build android,然后命令cordova运行android,然后一切都解决了(Windows User)。