Ошибка Android-phonegap: ошибка синтаксического анализа XML: несвязанный префикс

Я перезапустил eclipse, и ошибка была изменена на "error: Error parsing XML: unbound prefix" в той же строке

Я пытаюсь использовать этот плагин в приложении Android phoneapap. Это локальный модуль уведомлений. Я получаю ошибку в файле config.xml в этой строке:

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

Существует аналогичный вопрос об этой проблеме здесь, но ответ не связан с моей проблемой.

Вот мой файл config.xml:

<?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="#" onclick="location.href='http://www.example.com'; return false;" 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>

Я использую eclipse с плагином adt. Я сгенерировал приложение для Android и внесло некоторые изменения в него, чтобы он работал с телефонной связью (он отлично работает без локального модуля уведомлений). Я использую версию cordova 2.9.0. Как я могу решить эту проблему?

Ответ 1

Вам нужно добавить пространство имен xml.

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

Ваш корень xml будет выглядеть следующим образом:

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

Удачи!

Ответ 2

Для меня проблема была не интерпретируемым атрибутом в моем файле манифеста. измените красный цвет на зеленый (см. снимок экрана), убедитесь, что ваше устройство Android подключено и снова запустите phonegap run android.

change wrong xml attributes in AndroidManifest.xml

Использовать лог-код adb для обнаружения проблем сборки и выполнения Для android вы можете использовать вывод logcat для отладки вашего приложения phonegap/cordova. На iOS используйте вывод logcat из xcode

я обнаружил вышеуказанную проблему, запустив adb logcat из проекта root в консоли.

если вы хотите отфильтровать вывод любого файла журнала, который вы можете сделать легко, используя grep, за которым следует ваше ключевое слово (например, ошибка или слияние):

adb logcat | grep error

заменить "error" на то, что вы ищете в logcat