Android Studio mit Java-Compiler-Fehler: Zeichenfolge zu groß, um mit UTF-8 codiert zu werden, stattdessen geschrieben als „STRING_TOO_LARGE“.

Lesezeit: 5 Minuten

Benutzer-Avatar
Xianwei

Wenn ich das Android-Projekt in Android Studio bereinige, tritt der Fehler auf, ich habe auf den vorherigen Commit oder einen anderen Zweig zurückgegriffen, der vor ein paar Tagen funktioniert, aber jetzt diesen Fehler hat. Ich habe diese Frage überprüft und es wurden keine großen Bilder oder Zeichenfolgen für mein Projekt hinzugefügt. STRING_TOO_LARGE Zeichenfolge in Kothlin

  • Ich habe das gleiche Problem, nachdem ich ein Java-Projekt auf die neueste Gradle-Version aktualisiert habe.

    – Stevyhacker

    2. Oktober 2018 um 12:54 Uhr

  • Hat jemand eine Lösung gefunden?

    – Nikhil

    4. Oktober 2018 um 9:30 Uhr

  • @Nikhil Noch nicht, es funktioniert einfach für mich … ohne etwas zu tun

    – Xianwei

    4. Oktober 2018 um 16:18 Uhr

  • @Xianwei Dasselbe gilt für mich auch. Es ist irgendwie seltsam, aber es funktioniert jetzt, ohne etwas zu tun

    – Nikhil

    8. Oktober 2018 um 7:26 Uhr

  • Für mich war es eine SVG-Datei, die ich für die Symbolgenerierung im Android Image Asset Studio verwendet habe. Als ich den Pfad dieser SVG-Datei gelöscht und mein Symbol einfach gemacht habe, ist der Fehler verschwunden.

    – Abdul Wahid

    19. Mai 2020 um 6:21 Uhr

Ich war auf das gleiche gestoßen und habe es behoben leeren Sie den Build-Cache .

  • Wie kann ich dies von Android Studio aus tun?

    – Muhaiminur Rahman

    14. November 2018 um 5:56 Uhr

  • Hier ist die Lösung im Android-Dokument Öffnen Sie Android Studio, wählen Sie View > Tool Windows > Terminal aus der Menüleiste und verwenden Sie einen der folgenden Befehle: (in Windows )gradlew cleanBuildCache und (in Mac oder Linux) ./gradlew cleanBuildCache

    – Pritesh Vishwakarma

    14. November 2018 um 10:57 Uhr


  • Es ist für mein Problem behoben

    – Chivorn

    15. August 2019 um 7:55 Uhr

Benutzer-Avatar
ILMTL

Ich steckte bei diesem Problem fest und las dieses Thema durch, und niemand bot eine zukünftige Lösung. Ich wollte mein Gradle NICHT zurücksetzen. Daher hier der Link zu den aktualisierten Abhängigkeiten https://github.com/stripe/stripe-android. Suchen Sie nach dem Abschnitt „Android Studio (oder Gradle)“ und Sie sollten dies sehen "implementation 'com.stripe:stripe-android:8.1.0'" auch müssen Sie möglicherweise hinzufügen "-keep class com.stripe.android.** { *; }" wenn Sie die Verkleinerung in Ihrer build.gradle-Datei aktivieren.

Insgesamt hat Stripe aufgehört, seine eigenen „Stripe-Dokumente“ zu aktualisieren, die gefunden werden können hier. Um ihnen Ehre zu machen, sind ihre Dokumente hilfreich und sollten mindestens einmal gelesen werden, aber denken Sie daran, dass die meisten Dokumente veraltet sind, als ich dies schrieb …

Hoffe das hilft 🙂

  • Perfekte Lösung für meinen Fall

    – Umasankar

    9. Januar 2019 um 6:21 Uhr


Zurzeit können Sie die Gradle-Version herunterstufen, um dieses Problem zu beheben. Verwenden Sie Gradle 3.1-Version wie 3.1.3 unten.

  classpath 'com.android.tools.build:gradle:3.1.3'

  • Ich habe diesen Fehler erhalten, als ich Gradle von 3.1.3 auf 3.2.0 aktualisiert habe, ich möchte die Version unter 3.2.0 nicht verwenden

    – Ghizlane Lotfi

    19. November 2018 um 11:11 Uhr

  • Ich erhalte immer diesen Fehler, wenn ich versuche, die Stripe-Bibliothek “com.stripe:stripe-android:6.1.2” zu einem beliebigen Projekt hinzuzufügen, einschließlich eines leeren. Manchmal kann ich es wegbekommen, indem ich die Gradle-Verzeichnisse lösche und neu synchronisiere, aber das Herunterstufen des Gradle-Plugins scheint die einzige zuverlässige Option zu sein, um es dauerhaft zu beseitigen Gradle-Plug-in-Versionen

    – Elletlar

    7. Dezember 2018 um 18:32 Uhr

  • @Elletlar und alle, die dieses Problem wegen Stripe SDK hatten: Version 6.1.2 des SDK enthält einen Vektor, der mit einem sehr langen Pfad gezeichnet werden kann. Dieser Pfad ist derjenige, der den Fehler generiert, und dieser wird durch „STRING_TOO_LARGE“ ersetzt. Sie haben es in diesem Commit behoben github.com/stripe/stripe-android/pull/547 jede Version, die diesen Fix enthält (ab 7.0.0), lässt den Fehler verschwinden. Ich verwende zum Zeitpunkt des Schreibens 8.1.0.

    – Cosmin Radu

    11. Dezember 2018 um 10:30 Uhr

  • Das ist keine Lösung!

    – Dawid Hyży

    30. April 2019 um 5:37 Uhr

  • Downgrading scheint mir ein bisschen hacky.

    – Robin Hood

    5. Mai 2019 um 21:21 Uhr

Sie können AAPT (aus dem Android SDK/Build-Tools) verwenden, um das APK zu untersuchen und mit der folgenden Befehlszeile (Linux) nach der fehlerhaften Zeichenfolge zu suchen:

// Linux/Mac
./aapt dump --values resources MyAppName-regular-debug.apk | grep -B 1 'STRING_TOO_LARGE'

// Windows
aapt dump --values resources MyAppName-regular-debug.apk | grep -B 1 'STRING_TOO_LARGE'

Was Sie auf den Übeltäter hinweisen sollte. In meinem Fall war es:

resource 0x7f0f015a com.example.app:string/eula: t=0x03 d=0x00000f10 (s=0x0008 r=0x00)
      (string8) "STRING_TOO_LARGE"

Benutzer-Avatar
Xaver Caliz

Es kommt vor, dass ich ein zu langes SVG hatte (90Kb). Also habe ich de SVG in Adobe Illustrator geöffnet, den Weg zu einer erheblichen Anzahl von Vektoren vereinfacht, damit das neue Symbol 3Kb wiegt, und schließlich wieder in Android Studio importiert.

Sie können sich Ihr Projekt in Android Studio ansehen und beobachten, ob Ihre SVG-Drawables größer sind als für ein Symbol benötigt.

Screenshot des Projekts in Android Studio, der das Gewicht der Drawables zeigt

Benutzer-Avatar
PGMacDesign

Keine der oben genannten Lösungen hat bei mir funktioniert. Was letztendlich die Ursache des Problems war, war, wie es heißt, ein zu großer String. Genauer gesagt in meiner arrays.xml Datei im Werteverzeichnis hatte ich einige SVG-Arrays, die in meiner App verwendet wurden, und das Auskommentieren löste das Problem.

Wenn Sie sicher wissen, dass Sie irgendwo in Ihren Ressourcenverzeichnissen einige längere Zeichenfolgen haben (/res), suchen Sie nach großen Zeichenfolgen, die möglicherweise lauern.

Diese Lösung kann auch anderen helfen, wurde aber in diesem Thread nicht verlinkt.

Benutzer-Avatar
Masum

benutz einfach <?xml version="1.0" encoding="utf-8"?> vorher in Ihrer Drawable-Datei.

Beispiel:

<?xml version="1.0" encoding="utf-8"?>
<vector
    android:autoMirrored="true"
    android:height="24dp"
    android:viewportHeight="490.282"
    android:viewportWidth="490.282"
    android:width="24dp"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <path
        android:fillColor="#fff"
        android:pathData="M0.043,245.197c0.6,10.1 7.3,18.6 17,21.5l179.6,54.3l6.6,123.8c0.3,4.9 3.6,9.2 8.3,10.8c1.3,0.5 2.7,0.7 4,0.7c3.5,0 6.8,-1.4 9.2,-4.1l63.5,-70.3l90,62.3c4,2.8 8.7,4.3 13.6,4.3c11.3,0 21.1,-8 23.5,-19.2l74.7,-380.7c0.9,-4.4 -0.8,-9 -4.2,-11.8c-3.5,-2.9 -8.2,-3.6 -12.4,-1.9l-459,186.8C5.143,225.897 -0.557,235.097 0.043,245.197zM226.043,414.097l-4.1,-78.1l46,31.8L226.043,414.097zM391.443,423.597l-163.8,-113.4l229.7,-222.2L391.443,423.597zM432.143,78.197l-227.1,219.7l-179.4,-54.2L432.143,78.197z"/>
</vector>

1054680cookie-checkAndroid Studio mit Java-Compiler-Fehler: Zeichenfolge zu groß, um mit UTF-8 codiert zu werden, stattdessen geschrieben als „STRING_TOO_LARGE“.

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy