57
votes

I followed the tutorial of Phonegap from the official Phonegap.com site (getting started with Android).

I have created project with following all the steps.

  1. created activity and extended from "DroidGap" and added loadURL method from onCreate().
  2. Added cordova-2.0.0.js and cordova-2.0.0.jar on the respective folder.
  3. Added the jar file to the build path
  4. Loaded the js file from the html tag
  5. Added permissions from AndroidMainfeast.xml
  6. copied the xml folder containing "configs.xml"

Now I don't understand where's the problem. It is showing the below error as shown in the screenshot enter image description here

Here is my HTML file

<!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>

Any advice? Thanks!

13
Just copy paste your entire logs and i tell you the problem :)coderslay
@Coder_sLaY.. 08-13 18:34:42.700: E/PluginManager(32002): ERROR: plugin.xml is missing. Add res/xml/plugins.xml to your project.Nilanchala Panigrahy

13 Answers

64
votes

It is config.xml not configs.xml.

Based on the logs I'm seeing you are missing this file in your apps res/xml directory. It is included as part of the distribution at lib/android/res/xml/config.xml so copy that file into your res/xml directory and you should be all set.

42
votes

Just as aharris88 in his answer to this question, I had the [CORDOVA] Error initilizing Cordova: Class not found error message when using Cordova 3.1.0 on my Android dev phone after migrating from Phonegap 3.0.

All fiddling with the config.xml file in the /platforms/android/res/xml directory did not help. Based on the Stackoverflow answer mentioned above, I tried to "start over" by reinstalling Android platform support:

cordova platform rm android
cordova platform add android

After this step it worked again, and I was able to cordova build android && cordova run android without any further problems.

15
votes

I have had this error because of a plugin that I deleted. I Added

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

to the config.xml file again and it fixed it.

8
votes

My you not have following plugin:

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

You have to put that in between <plugins></plugins>. like

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

Well,the error I found is:

05-28 08:19:53.139: E/PluginManager(1478): ===================================================================================== 05-28 08:19:53.139: E/PluginManager(1478): ERROR: config.xml is missing. Add res/xml/config.xml to your project. 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=framework/res/xml/plugins.xml

but I found /res/xml/config.xml in my project

finally,I found error in org.apache.cordova.api.PluginManager:

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

should change to:

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

you could read more about the method "getIdentifier(String name, String defType, String defPackage)" in offical doc

6
votes

I had this problem using phonegap 3.x and the problem turned out to be that phonegap hadn't properly installed the plugins, or they just messed up along the way. Basically when you install the plugins and build for a platform it takes the javascript files from plugins/org.apache.cordova.core.specific-plugin/www and puts them in platforms/android/assets/www/plugins/org.apache.cordova.core.specific-plugin/www and then it takes the Java files (or objective C for iOS) and puts them in platforms/android/src/org/apache/cordova/specificplugin

And all of this is specified by plugins/org.apache.cordova.core.specific-plugin/plugin.xml. If you look in a plugins.xml you should see something like:

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

So this tells you that in platforms/android/src/org/apache/cordova/networkinformation, there should be NetworkManager.java. And that file can be copied from plugins/org.apache.cordova.core.network-information/src/android/NetworkManager.java

Now all of this is supposed to happen automatically without having to touch the platforms folder. But if it messes up you can fix it by manually copying the correct files into the correct folders.

2
votes

You can resolve this when using phonegap command line by doing the following:

  1. Delete merges/android, platforms/android, plugins/android.json

  2. run phonegap local build android

2
votes

Had same problem with Class not found. One problem to look at is to ensure that the android.json (or ios.json) file is being updated on a build. Mine was effectively empty. Also, remove and add back the plugins as mentioned in some other posts. Finally, the thing that worked for me was to ensure that the plugins were corrected referenced in the 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>

Note the double naming of 'device.Device' and also the sub-classing of the 'camera' and 'dialogs' plugins. This just isn't properly referenced by the Phonegap documentation.

1
votes

So After near to kill myself , i found that i was using cordova version 5.3.3 and cordova-android version 5.0.0, somehow i don't know may be there are not compatible or there can be a bug ,so i fall back to cordova android 4.1.1

  cordova platform rm android
  cordova platform add [email protected] 

and this saved me up

1
votes

I ran into the same error: "Error initializing Cordova: Class not found", using cordova with visual studio 2015. But this wasn't the only error, none of my plugins seem to get trough. I've tried about EVERYTHING. From cordova platform rm/add android x1000 times, to deleting and re-adding the plugins manually, nothing seem to do the trick.

enter image description here

Then i changed my cordova-cli in the taco.json file from 5.3.3 to 5.4.0 and ran it on my device. Finally this fixed the whole issue for me. I then downgraded the cordova version back to 5.3.3 ( the 5.4.0 version is not supported by the adb bridge as of yet ). Try it out!

0
votes

I'm getting the same error, I checked my Cordova plugin list

by running the command "cordova plugin list" in my Android project directory and found "org.apache.cordova.device" plugin missing.

I updated it using "Cordova plugin add cordova-plugin-device" and Error was gone.

0
votes

[Solved in my case]

First, step six is wrong: it is config.xml and not configs.xml

I have the same error despite I have my config.xml in res/xml folder. It is because you have to install manually plugins for basic API functions.

Through console navigate to your project folder and type:

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

You can read more here in phonegap Doc (last section called add features) : Phonegap Doc

I leave you also my config.xml file

<?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="[email protected]" 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>
0
votes

This could happened 'cause your cordova plugin have a different path from what IONIC expect to found:

You should correct the file plugin.xml inside your plugin source folder:

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

should be:

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

If you try to searching that error inside the Android Studio Logcat usually you find something like:

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.