2014-01-14 3 views
12

ich neu gestartet Eclipse und der Fehler auf „Fehler: Fehler beim Parsen von XML: Nicht konsolidiert Präfix“ auf der gleiche LinieAndroid - phonegap Fehler: Fehler bei der Analyse XML: ungebundener Präfix

ich this Plugin in meinem Android zu verwenden versuchen Phonegap-Anwendung. Es ist ein lokales Benachrichtigungs-Plugin. Ich erhalte den Fehler in meiner Datei config.xml auf dieser Linie:

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

Es gibt eine ähnliche Frage zu diesem Problem here, aber die Antwort ist nicht auf mein Problem zu tun hat.

Hier ist meine Datei 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="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> 

ich Eclipse mit der ADT-Plugin verwenden. Ich generierte eine Android-Anwendung und machte einige Änderungen daran, so dass es mit Phonegap funktionieren würde (es funktioniert gut ohne das lokale Benachrichtigungs-Plugin). Ich verwende cordova 2.9.0 Version. Wie kann ich dieses Problem lösen?

+0

Zeigen Sie uns die Fehlermeldung – GenieWanted

+0

und auch, wie Sie versuchen, das Plugin hinzuzufügen, welche Version von phonegap Sie verwenden, verwenden Sie Phonegap Build, die CLI ... Wenn Sie Hilfe benötigen, sollten Sie genauer sein über was du tust. – QuickFix

+0

Ich habe gerade meine Frage aktualisiert. –

Antwort

54

Sie müssen einen XML-Namespace hinzufügen.

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

Ihre Wurzel xml schould wie diese aussehen:

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

viel Glück!

+10

Für 'android: something' Eigenschaften (wie das Beispiel in @mrmorees Antwort), füge folgendes zum' 'hinzu 'tag:' xmlns: android = "http://schemas.android.com/apk/res/android"> ' – Ronny

+0

@drdrej Hallo ich benutze Also, was werde ich in Widget schreiben? – Shaddy

16

Für mich war das Problem ein nicht interpretierbares Attribut in meiner Manifest-Datei. ändern Sie die rote Markierung auf die grüne (siehe Screenshot), stellen Sie sicher, dass Sie Ihr Android-Gerät angeschlossen haben und phonegap run android erneut ausführen.

change wrong xml attributes in AndroidManifest.xml

Verwenden adb logcat entdecken bauen und Laufzeitprobleme für Android Sie die logcat Ausgabe können Sie Ihre phonegap/cordova Anwendung debuggen. Auf iOS verwenden Sie die Logcat-Ausgabe von xcode

Ich entdeckte das oben genannte Problem durch Ausführen von adb logcat von Projekten root in der Konsole.

, wenn Sie möchten die Ausgabe jedes Logfile filtern Sie mithilfe grep gefolgt von Ihrem Schlüsselwort (zB Fehler oder mergemanifest) leicht tun können:

adb logcat | grep error 

ersetzen „Fehler“ mit dem, was Sie suchen in logcat

+3

Oder fügen Sie einfach den Android-Namespace zu Ihrem XML' xmlns: android = "http://schemas.android.com/apk/res/android" ' –

+0

Der Namespace Vorschlag von David ist, was für mich gebraucht wurde. – Spode

+0

Das hat bei mir funktioniert. – OoDeLally