58

我按照 Phonegap.com 官方网站上的 Phonegap 教程进行操作(Android 入门)。

我已经按照所有步骤创建了项目。

  1. 创建活动并从“DroidGap”扩展并从 onCreate() 添加 loadURL 方法。
  2. 在相应的文件夹中添加了 cordova-2.0.0.js 和 cordova-2.0.0.jar。
  3. 将jar文件添加到构建路径
  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>

有什么建议吗?谢谢!

4

13 回答 13

64

config.xml不是configs.xml

根据我看到的日志,您的应用程序res/xml目录中缺少此文件。它包含在发行版中,lib/android/res/xml/config.xml因此将该文件复制到您的res/xml目录中,您应该已准备就绪。

于 2012-08-13T17:04:34.703 回答
42

正如aharris88 在他对这个问题的回答中一样,从 Phonegap 3.0 迁移后,在我的 Android 开发手机上[CORDOVA] Error initilizing Cordova: Class not found使用Cordova 3.1.0时,我收到了错误消息。

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

cordova platform rm android
cordova platform add android

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

于 2013-10-19T16:41:52.427 回答
15

由于我删除了一个插件,我遇到了这个错误。我添加了

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

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

于 2013-05-20T22:28:29.223 回答
8

我的你没有以下插件:

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

你必须把它放在中间<plugins></plugins>。像

<plugins>
    <plugin name="Device" value="org.apache.cordova.Device"/>
</plugins>
于 2013-07-19T08:29:31.267 回答
6

我在使用 phonegap 3.x 时遇到了这个问题,结果问题是 phonegap 没有正确安装插件,或者他们只是一路搞砸了。基本上,当您安装插件并为平台构建时,它会从 plugins/org.apache.cordova.core.specific-plugin/www 获取 javascript 文件,并将它们放在 platform/android/assets/www/plugins/org.apache 中。 cordova.core.specific-plugin/www 然后它获取Java文件(或iOS的目标C)并将它们放入platforms/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" />

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

现在所有这些都应该自动发生,而无需触及平台文件夹。但是,如果它搞砸了,您可以通过手动将正确的文件复制到正确的文件夹中来修复它。

于 2013-09-18T23:42:04.247 回答
6

好吧,我发现的错误是:

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

但我在我的项目中找到了 /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 name, String defType, String defPackage)”方法的更多信息

于 2014-05-28T09:53:25.890 回答
2

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

  1. 删除合并/android、platforms/android、plugins/android.json

  2. phonegap local build android

于 2014-04-10T16:08:47.613 回答
2

没有找到类有同样的问题。需要注意的一个问题是确保 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 文档没有正确引用这一点。

于 2014-05-09T15:35:59.253 回答
1

所以在接近自杀之后,我发现我正在使用cordova 5.3.3版和cordova-android 5.0.0版,不知何故我不知道可能是不兼容还是可能有错误,所以我退回到科尔多瓦 android 4.1.1

  cordova platform rm android
  cordova platform add android@4.1.1 

这救了我

于 2015-11-17T16:44:48.310 回答
1

我遇到了同样的错误:“初始化 Cordova 时出错:找不到类”,在 Visual Studio 2015 中使用 Cordova。但这不是唯一的错误,我的插件似乎都没有达到低谷。我什么都试过了。从cordova platform rm/add androidx1000 次到手动删除和重新添加插件,似乎没有任何效果。

在此处输入图像描述

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

于 2016-01-25T09:40:15.023 回答
0

[在我的情况下解决]

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

尽管我的config.xml在 res/xml 文件夹中,但我有同样的错误。这是因为您必须手动安装基本 API 功能的插件。

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

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

您可以在 phonegap Doc 中阅读更多信息(最后一节称为添加功能):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>
于 2013-11-01T04:47:57.507 回答
0

我遇到了同样的错误,我检查了我的 Cordova 插件列表

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

我使用“Cordova plugin add cordova-plugin-device”对其进行了更新,并且错误消失了。

于 2015-07-28T07:55:54.480 回答
0

这可能会发生,因为您的 cordova 插件与 IONIC 期望找到的路径不同:

您应该更正插件源文件夹中的文件plugin.xml :

<config-file target="app/src/main/res/xml/config.xml" parent="/*">

应该:

 <config-file target="res/xml/config.xml" parent="/*">

如果您尝试在 Android Studio Logcat 中搜索该错误,通常会发现如下内容:

io.ionic.starter E/chromium: [ERROR:service_manager.cc(156)] Connection InterfaceProviderSpec prevented service: content_renderer from binding interface: blink::mojom::BudgetService exposed by: content_browser
2019-02-22 13:40:06.144 30230-30258/com.android.webview:sandboxed_process0 E/chromium: [ERROR:BudgetService.cpp(167)] Unable to connect to the Mojo BudgetService.
于 2019-02-22T12:57:14.133 回答