Wie man Kommentare in rohen XML-Dateien mit Gradle entfernt, wenn die Datei verpackt ist

Mein Projekt haben XML-Dateien im Roh- Ressourcen-Verzeichnis meines Android-Projekts:

Projektaufbau

  • Wie kann ich das Fling in der Android-Galerie auf nur einen Artikel pro Fling beschränken?
  • Benutzerdefinierte Listview-Adapter-GetView-Methode wird mehrfach genannt und in keiner kohärenten Reihenfolge
  • Wie man benutzerdefinierte Benutzeroberfläche für Android MediaController erstellt
  • RawQuery gegen Database.query
  • Android-Implementierung Chat-Bubble in ListView
  • Gibt es ein XML-Tag, das äquivalent zu `ListView.addHeaderView 'ist?
  • Ich möchte Kommentare ( <!-- ... --> ) aus diesen Dateien entfernen, wenn es in .apk Datei verpackt ist:

    Original-Datei:

     <?xml version="1.0" encoding="utf-8"?> <celebrations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="celebrations_schema.xsd"> <!-- This is a very important comment useful during development --> <celebration name="celebration 1" type="oneTime" ... /> <!-- This is another very important comment useful during development --> <celebration name="celebration 2" type="reccurent" ... /> </celebrations> 

    Erwartete gefilterte Datei:

     <?xml version="1.0" encoding="utf-8"?> <celebrations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="celebrations_schema.xsd"> <celebration name="celebration 1" type="oneTime" ... /> <celebration name="celebration 2" type="reccurent" ... /> </celebrations> 

    Ich habe hier einige interessante ähnliche Lösungen gefunden , aber ich kann es nicht schaffen, zu arbeiten. Hinzufügen dieser Zeilen in meine App build.gradle

     processResources { filesMatching('**/myxmlfiletobestrippedfromcomments.xml') { filter { String line -> line.replaceAll('<!--.*-->', '') } } } 

    Erzeugt den folgenden Fehler:

     Error:(86, 0) Gradle DSL method not found: 'processResources()' 

    Zum Öffnen und Analysieren der XML-Datei aus Java-Code verwende ich die folgende Methode:

     InputStream definition = context.getResources().openRawResource(resId); ... try { XmlPullParser parser = Xml.newPullParser(); parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); parser.setInput(definition, null); parser.nextTag(); return parseCelebrations(parser); } finally { definition.close(); } 

  • Login Fehler: Es liegt ein Fehler bei der Protokollierung in dieser Anwendung vor. Bitte versuchen Sie es später noch einmal
  • Wie implementiere ich Export sqlite zu Excel / csv-Datei in Android?
  • Ellipsenerkennung mit OpenCV
  • Verstecken des Titels im Vollbildmodus?
  • Wie schreibe ich Zeitstempel in apk
  • Anhängen mehrerer Listener auf Ansichten in Android?
  • 2 Solutions collect form web for “Wie man Kommentare in rohen XML-Dateien mit Gradle entfernt, wenn die Datei verpackt ist”

    Default xml's Kommentar wird kein Paket in apk, können Sie dekompilieren, um es zu testen.

    Ich habe mein Problem gelöst, indem ich meine Datei in das Verzeichnis res\xml . In diesem Fall ist die XML-Datei "kompiliert" und ist nicht lesbar, wenn ich das APK-Archiv öffne.

    Allerdings musste ich die Eröffnung und den Parsing-Code meiner XML-Datei ändern, um so etwas wie dies:

     XmlResourceParser xmlResourceParser = context.getResources().getXml(resId); ... // I had to add this line (to skip START_DOCUMENT tag, which was not needed // with opening from the `raw` directory) while (xmlResourceParser.next() != XmlPullParser.START_TAG); return parseCelebrations(xmlResourceParser); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.