我的电脑是Windows 8 64bit,我为我的项目安装了cordova和android平台,我已经通过输入cordova create hello com.example.hello HelloWorld
和cordova platform add android
创建了我的项目
但是当我运行cordova build
时,它会显示以下错误:
[Error: No Java files found which extend CordovaActivity.]
我在网上搜索但是还没找到解决方案,有什么问题?
答案 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-packageName
和config.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)。