未找到扩展 CordovaActivity 的 Java 文件。使用“cordova build”时
Posted
技术标签:
【中文标题】未找到扩展 CordovaActivity 的 Java 文件。使用“cordova build”时【英文标题】:No Java files found which extend CordovaActivity. when use "cordova build" 【发布时间】:2013-12-14 12:57:38 【问题描述】:我的电脑是 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.]
我在网上搜索了但还没有找到解决方案,请问是什么问题?
【问题讨论】:
您是如何安装 Cordova 的?运行命令时是否连接到互联网?您可以在所有命令中使用-d
标志再试一次并发布结果吗?
【参考方案1】:
当我从另一个项目克隆我的存储库时,我遇到了同样的错误。我通过删除平台并重新添加它来解决它。
删除:cordova platform rm android
添加:cordova platform add android
【讨论】:
帮助很大。谢谢! 在cordova clean
不知何故后体验了它......无论如何,这解决了它,所以它应该是接受的答案恕我直言。
谢谢。解决了!
谢谢,帮了大忙……【参考方案2】:
您只需删除平台cordova platform rm android
并输入cordova platform add android
重新添加平台,错误就会消失
【讨论】:
【参考方案3】:在 Eclipse 或其他编辑器中,进入 platform/android/src/ 下的 .java 源文件,并确保该类扩展了 CordovaActivity(它之前可能已经扩展了 DroidGap)。
【讨论】:
感谢@hyperizer - 你只是对 Stack Overflow 的贡献,但它救了我! 谢谢!从 2.x 升级时遇到同样的问题 例如将:public class Your_App_Name extends DroidGap
更改为:public class Your_App_Name extends CordovaActivity
这不适用于不使用 CordovaActivity 的混合动力。
我正在使用 ionic v5 运行,.java 源文件在platforms/android/src/ 下不存在。我在哪里可以找到它?【参考方案4】:
我遇到了同样的问题(尽管在 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 等中提取它。至少现在你正在处理一个干净整洁的最新版本。
【讨论】:
【参考方案5】:当我从config.xml中更改包id名称时发生此错误,例如io.cordova..etc为另一个包名,所以我通过删除android平台并更改版本信息和包名来解决它配置文件,然后运行命令 android cordova platform add android
【讨论】:
【参考方案6】:带有扩展 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 网站上的任何地方都找不到它们可供下载。 您已经拥有 .java 文件 - 它位于您的 cordova android 项目的 /src 文件夹的子文件夹中 - 搜索“CordovaActivity”。 --> 将此 java 文件中活动的包名称更改为全局 Cordova config.xml id 标签中指定的 id,例如“com.example.app”。 您可以随时降级到 2.9.1npm install -g phonegap@2.9.0-rc1-0.12.2
【参考方案7】:
只是关于 PhoneGap 3.2 导致相同错误的相关主题,您可能在配置和尝试使其最初运行时弄乱了应用程序
对我有用的是删除生成的 android 平台文件,然后再次运行 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 平台文件并重新构建/运行来恢复。【参考方案8】:
通常在添加平台后更改 config.xml 文件中的 id 时发生:
<widget id="changed-this-id" ...
修复:
remove : cordova platform rm android
add : cordova platform add android
【讨论】:
【参考方案9】:当您在 config.xml 中更改包 ID 或名称时会出现此错误,您需要做的就是通过键入“Cordova platform rm android”删除 android 平台并重新添加平台通过键入“Cordova 平台添加 android”。您可以获得成功的构建。
【讨论】:
【参考方案10】:我偶然发现了一个“解决方案”,适用于使用“隐藏”CordovaActivity 扩展的框架的任何人,即 MainActivity 看起来像这样:
public class MainActivity extends GDCordovaActivity ...
其中 GDCordovaActivy 是您的框架 Activity 扩展 CordovaActivity。
只需将“foo.java”文件添加到项目中,只包含这样的注释:
/** extends CordovaActivity */
由于 cordova 框架解析文件并且无法识别 cmets,您将能够调用 cordova android prepare
等而不会出现任何错误。
【讨论】:
^this -- 但只需在 MainActivity.java 中这样做: public class MainActivity extends RMCActivity /** extends CordovaActivity */ ... 【参考方案11】:这个问题是由于缺少 MainActivity.Java 文件引起的 通常它位于以下路径。
[Application Name]\platforms\android\src\com
这里应该有基于你给定的命名空间的文件夹名称。
Suppose I have given namespace as com.passion.oilfreerecipes
So there should have folder passion --> OilfreeRecipes
在它们里面你应该有 MainActivity.Java。
当我清理解决方案时,它会在我的应用程序中清除。 您可以从其他项目中复制和粘贴,并根据需要更改 mainActivity.Java。
【讨论】:
【参考方案12】:如果config.xml
中的id
和android-packageName
不匹配,就会发生这种情况。
android-packageName="com.example.app" id="com.example.app"
【讨论】:
【参考方案13】:我有太多自定义,不想重新创建平台。
通过将defaults.xml
中的widget id
更改为新的包名解决了这个问题(我将默认的io.hellocordova
更改为我自己的包结构)
【讨论】:
【参考方案14】:我通过重置 JAVA 环境解决了这个问题。
$ sudo update-alternatives --config java
选择 /usr/lib/jvm/java-1.8.0-openjdk-amd64 的编号。
按回车键保留当前选择[*],或输入选择编号:
要选择默认的 javac 编译器,请运行以下命令。
$ sudo update-alternatives --config javac
如果您更喜欢使用 gui 而不是命令行,则可以执行 galternatives 并使用以下对话框定义软件的默认版本。
$ sudo galternatives
【讨论】:
以上是关于未找到扩展 CordovaActivity 的 Java 文件。使用“cordova build”时的主要内容,如果未能解决你的问题,请参考以下文章
Java 配置 /j_spring_security_check 未找到
Azure Data Studio:未找到新安装扩展的设置/未出现在设置中