初始化Cordova时出错:未find类

我从官方的Phonegap.com网站(Android开始)跟随了Phonegap的教程。

我已经创build了以下所有步骤的项目。

  1. 创build活动并从“DroidGap”扩展,并从onCreate()添加loadURL方法。
  2. 在相应的文件夹中添加了cordova-2.0.0.js和cordova-2.0.0.jar。
  3. 将jar文件添加到构buildpath
  4. 从html标签加载js文件
  5. 从AndroidMainfeast.xml添加权限
  6. 复制包含“configs.xml”的xml文件夹

现在我不明白问题在哪里。 它显示如下截图所示的错误 在这里输入图像说明

这是我的HTML文件

<!DOCTYPE html> <html> <head> <title>Notification Example</title> <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script> <script type="text/javascript" charset="utf-8"> // Wait for Cordova to load // document.addEventListener("deviceready", onDeviceReady, false); // Cordova is ready // function onDeviceReady() { // Empty } // Show a custom alert // function showAlert() { navigator.notification.alert( 'You are the winner!', // message 'Game Over', // title 'Done' // buttonName ); } // Beep three times // function playBeep() { navigator.notification.beep(3); } // Vibrate for 2 seconds // function vibrate() { navigator.notification.vibrate(2000); } </script> </head> <body> <p><a href="#" onclick="showAlert()">Show Alert</a></p> <p><a href="#" onclick="playBeep()">Play Beep</a></p> <p><a href="#" onclick="vibrate()">Vibrate</a></p> </body> </html> 

有什么build议? 谢谢!

它是config.xml而不是configs.xml

基于日志,我看到你的应用程序res/xml目录中缺less这个文件。 它被包含在lib/android/res/xml/config.xml中的发行版的一部分中,因此将该文件复制到res/xml目录中,并且应该全部设置。

就像他在这个问题的答案aharris88 ,我有[CORDOVA] Error initilizing Cordova: Class not found错误消息,当我的Android开发手机使用cordova3.1.0从Phonegap 3.0迁移后。

所有在/platforms/android/res/xml目录下摆弄config.xml文件都没有帮助。 基于上面提到的Stackoverflow答案,我试图通过重新安装Android平台支持来“重新开始”:

 cordova platform rm android cordova platform add android 

经过这一步,它再次工作,我能cordova build android && cordova run android没有任何进一步的问题。

我有这个错误,因为我删除了一个插件。 我补充说

 <plugin name="Device" value="org.apache.cordova.Device"/> 

再次到config.xml文件,并修复它。

我没有下面的插件:

 <plugin name="Device" value="org.apache.cordova.Device"/> 

你必须把它放在<plugins></plugins> 。 喜欢

 <plugins> <plugin name="Device" value="org.apache.cordova.Device"/> </plugins> 

那么,我发现的错误是:

05-28 08:19:53.139:E / PluginManager(1478):================================== ================================================== = 05-28 08:19:53.139:E / PluginManager(1478):错误:config.xml丢失。 将res / xml / config.xml添加到您的项目。 05-28 08:19:53.139:E / PluginManager(1478): https ://git-wip-us.apache.org/repos/asf?p=incubator-cordova-android.git;a=blob;f =框架/ RES / XML / plugins.xml

但是我在我的项目中find/res/xml/config.xml

最后,我在org.apache.cordova.api.PluginManager中发现错误:

 public void loadPlugins() { int id = this.ctx.getActivity().getResources().getIdentifier("config", "xml", this.ctx.getActivity().getClass().getPackage().getName()); ... 

应改为:

 public void loadPlugins() { int id = this.ctx.getActivity().getResources().getIdentifier("config", "xml", this.ctx.getActivity().getPackageName()); ... 

你可以阅读更多关于方法“getIdentifier(string名称,stringdefType,stringdefPackage)”在官方文档

我有这个问题,使用phonegap 3.x和问题原来是phonegap没有正确安装插件,或者他们只是搞砸了。 基本上,当你安装插件,并build立一个平台,它从plugins / org.apache.cordova.core.specific-plugin / www的JavaScript文件,并把它们放在平台/ android /资产/ www /插件/ org.apache。 cordova.core.specific-plugin / www然后它将Java文件(或iOS的目标C)放到平台/ android / src / org / apache / cordova / specificplugin

所有这些都是由plugins / org.apache.cordova.core.specific-plugin / plugin.xml指定的。 如果你看一个plugins.xml,你应该看到像这样的东西:

 <source-file src="src/android/NetworkManager.java" target-dir="src/org/apache/cordova/networkinformation" /> 

所以这告诉你在platform / android / src / org / apache / cordova / networkinformation中应该有NetworkManager.java。 该文件可以从plugins / org.apache.cordova.core.network-information / src / android / NetworkManager.java复制

现在所有这一切都应该自动发生,而不必触摸平台文件夹。 但是,如果它弄糟了,你可以通过手动将正确的文件复制到正确的文件夹来修复它。

您可以通过执行以下操作使用phonegap命令行解决此问题:

  1. 删除合并/ android,平台/ android,插件/ android.json

  2. 运行phonegap local build android

与Class没有find同样的问题。 要注意的一个问题是确保在构build中更新android.json(或ios.json)文件。 矿井实际上是空的。 另外,删除并添加一些其他职位中提到的插件。 最后,为我工作的是确保在config.xml中引用了插件:

 <feature name="Device"> <param name="android-package" value="org.apache.cordova.device.Device"/> </feature> <feature name="Camera"> <param name="android-package" value="org.apache.cordova.camera.CameraLauncher"/> </feature> <feature name="Notification"> <param name="android-package" value="org.apache.cordova.dialogs.Notification"/> </feature> 

请注意“device.Device”的双重命名以及“camera”和“dialogs”插件的子分类。 这只是没有正确的Phonegap文档引用。

我遇到了同样的错误:“错误初始化cordova:类未find”,与Visual Studio 2015年使用cordova。但这不是唯一的错误,我的插件似乎没有得到低谷。 我尝试了一切。 从cordova platform rm/add android x1000次,到手动删除和重新添加插件,似乎什么也没有办法。

在这里输入图像说明

然后,我将taco.json文件中的cordova-cli从5.3.3更改为5.4.0,并在我的设备上运行。 最后,这为我解决了整个问题。 然后,我将cordova版本降级到5.3.3(至今为止,adb网桥还不支持5.4.0版本)。 试试看!

我得到同样的错误,我检查了我的cordova插件列表

通过在我的Android项目目录中运行命令“cordova plugin list”,发现“org.apache.cordova.device”插件丢失。

我使用“Cordova plugin add cordova-plugin-device”更新了它,并且Error消失了。

所以在接近自杀后,我发现我使用的是cordova version 5.3.3和cordova-android version 5.0.0,不知何故我不知道可能存在不兼容或者可能存在bug,所以我回退了到cordovaandroid 4.1.1

  cordova platform rm android cordova platform add android@4.1.1 

这救了我

[解决在我的情况]

首先,第六步是错误的:它是config.xml而不是configs.xml

尽pipe我在res / xml文件夹中有我的config.xml文件,但仍然有同样的错误。 这是因为你必须手动安装基本的API函数插件。

通过控制台导航到您的项目文件夹并键入:

 phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git 

你可以在这里阅读更多的电话文档(最后一节称为添加function): Phonegap Doc

我离开你也我的config.xml文件

 <?xml version='1.0' encoding='utf-8'?> <widget id="io.cordova.helloCordova" version="2.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"> <name short="Menu">Menu Digital</name> <description> Description </description> <author email="asd@gmail.com" href="www.facebook.com/usr"> Name </author> <feature name="App"> <param name="android-package" value="org.apache.cordova.App" /> </feature> <feature name="http://api.phonegap.com/1.0/device" /> <feature name="http://api.phonegap.com/1.0/media" /> <feature name="Device"> <param name="android-package" value="org.apache.cordova.device.Device" /> </feature> <content src="index.html" /> <feature name="App"> <param name="android-package" value="org.apache.cordova.App" /> </feature> <access origin="*" /> <preference name="useBrowserHistory" value="true" /> <preference name="exit-on-suspend" value="false" /> <preference name="fullscreen" value="true" /> <preference name="webviewbounce" value="true" /> </widget>