Search code examples
javajavascriptxmlcordovaphonegap-plugins

Android - phonegap error: Error parsing XML: unbound prefix


I restarted eclipse and the error changed to "error: Error parsing XML: unbound prefix" on the same line

I am trying to use this plugin in my android phonegap application. It is a local notification plugin. I am getting the error in my config.xml file on this line:

<gap:plugin name="de.appplant.cordova.plugin.local-notification" version="0.6.2" />

There is a similar question about this problem here, but the answer is not related to my problem.

Here is my config.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns     = "http://www.w3.org/ns/widgets"
        id        = "com.xxx.xxx"
        version   = "2.0.0">
    <name>xxx</name>

    <description>
    xxx
    </description>

    <author href="http://www.example.com" email="[email protected]">
    xxx
    </author>

    <access origin="*"/>

    <!-- <content src="xxx" /> for external pages -->
    <content src="index.html" />

    <preference name="loglevel" value="DEBUG" />
    <!--
      <preference name="splashscreen" value="resourceName" />
      <preference name="backgroundColor" value="0xFFF" />
      <preference name="loadUrlTimeoutValue" value="20000" />
      <preference name="InAppBrowserStorageEnabled" value="true" />
      <preference name="disallowOverscroll" value="true" />
    -->

    <feature name="App">
      <param name="android-package" value="org.apache.cordova.App"/>
    </feature>
    <feature name="Geolocation">
      <param name="android-package" value="org.apache.cordova.GeoBroker"/>
    </feature>
    <feature name="Device">
      <param name="android-package" value="org.apache.cordova.Device"/>
    </feature>
    <feature name="Accelerometer">
      <param name="android-package" value="org.apache.cordova.AccelListener"/>
    </feature>
    <feature name="Compass">
      <param name="android-package" value="org.apache.cordova.CompassListener"/>
    </feature>
    <feature name="Media">
      <param name="android-package" value="org.apache.cordova.AudioHandler"/>
    </feature>
    <feature name="Camera">
      <param name="android-package" value="org.apache.cordova.CameraLauncher"/>
    </feature>
    <feature name="Contacts">
      <param name="android-package" value="org.apache.cordova.ContactManager"/>
    </feature>
    <feature name="File">
      <param name="android-package" value="org.apache.cordova.FileUtils"/>
    </feature>
    <feature name="NetworkStatus">
      <param name="android-package" value="org.apache.cordova.NetworkManager"/>
    </feature>
    <feature name="Notification">
      <param name="android-package" value="org.apache.cordova.Notification"/>
    </feature>
    <feature name="Storage">
      <param name="android-package" value="org.apache.cordova.Storage"/>
    </feature>
    <feature name="FileTransfer">
      <param name="android-package" value="org.apache.cordova.FileTransfer"/>
    </feature>
    <feature name="Capture">
      <param name="android-package" value="org.apache.cordova.Capture"/>
    </feature>
    <feature name="Battery">
      <param name="android-package" value="org.apache.cordova.BatteryListener"/>
    </feature>
    <feature name="SplashScreen">
      <param name="android-package" value="org.apache.cordova.SplashScreen"/>
    </feature>
    <feature name="Echo">
      <param name="android-package" value="org.apache.cordova.Echo"/>
    </feature>
    <feature name="Globalization">
      <param name="android-package" value="org.apache.cordova.Globalization"/>
    </feature>
    <feature name="InAppBrowser">
      <param name="android-package" value="org.apache.cordova.InAppBrowser"/>
    </feature>
    <!-- Deprecated plugins element. Remove in 3.0 -->
    
    
    <plugins>
        <plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/>
        <gap:plugin name="de.appplant.cordova.plugin.local-notification" version="0.6.2" />
    </plugins>
    
</widget>

I am using eclipse with the adt plugin. I generated an android application and made some modification to it so it would work with phonegap (its working fine without the local notification plugin). I am using cordova 2.9.0 version. How can I solve this problem?


Solution

  • You need to add a xml namespace.

      xmlns:gap="http://phonegap.com/ns/1.0"
    

    Your root xml schould look like this one:

      <widget id="com.example.MyApp" 
        version="1.0.0" xmlns="http://www.w3.org/ns/widgets" 
        xmlns:gap="http://phonegap.com/ns/1.0">
    

    good luck!