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 deaktiviere ich Toast-Nachrichten, die im Screen-Pinning generiert wurden?
  • Aufteilung großer Klassen mit Inneren Klassen in Java
  • Verstehen, wann und warum verschiedene Android-Threads verwenden
  • Wie kann ich mehrere SMTP-Server in Android setzen?
  • Ist eine unveränderliche Bitmap schneller als eine veränderliche?
  • Warum ist GetServerAuthCodeResult veraltet? Wie kann ich in einer installierten Anwendung etwas Äquivalentes machen?
  • 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(); } 

  • Statische Variable über mehrere, verschiedene Unterklassen - korrigiert
  • Android - Layout sieht in einigen Geräten durcheinander
  • Unterstützt Android OpenCL?
  • Implementierung der Benutzerwahl des Themas
  • Android: Navigation Schublade vertikalen Schatten
  • Gradle DSL-Methode nicht gefunden: "classpath ()"
  • 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.