web-dev-qa-db-fra.com

STRING_TOO_LARGE Chaîne dans Kotlin

Lorsque j'ai ajouté des plugins pour prendre en charge le Kotlin dans mon projet, après l'avoir lu, il a lu une chaîne importante dans le fichier string.xml de mon projet. Cela me donne l'erreur suivante ci-dessous.

erreur: la chaîne est trop longue pour être encodée à l'aide de UTF-8 écrit à la place sous la forme 'STRING_TOO_LARGE'.

10
Anil Ugale

Il semble qu'une cause commune à cela soit d'avoir une bande dans votre application/build.gradle. Il semble qu'un fichier vectoriel soit lu comme une chaîne de plus de 32 Ko.

Pour résoudre ce problème, changez votre version de bande à quelque chose après 7.0.0, où ils l'ont corrigée. La version actuelle de Stripe est 8.1.0.

3
JJ Du Plessis

Ce n’est pas vraiment une question de Kotlin, elle est liée aux outils de construction. Cela ne s’est pas produit avec Build Tools 27 (Gradle 3.1) mais m’est arrivé après la mise à niveau vers Build Tools 28 (Gradle 3.2).

La solution est affichée ici STRING_TOO_LARGE Erreur du compilateur Java .

2
Veener

C'est un problème avec le plugin Gradle.

Si vous mettez à niveau le plug-in à 3.3.0-alpha06 ou une version ultérieure et mettez Gradle à niveau à 4.9, cela devrait fonctionner. Ce n'est pas idéal puisqu'il s'agit d'alpha, mais cela a résolu le problème pour moi.

Ajoutez <?xml version="1.0" encoding="utf-8"?> en haut de tout fichier .xml de ressources le manquant.

2
Lancelittle

Lorsque vous travaillez avec des ressources vectorielles, vous devez simplement trouver et diviser une chaîne de plus de 32 Ko. Dans mon cas, il s’agissait d’un chemin complexe que j’ai un peu simplifié pour correspondre au critère de 32 Ko.

1
user10433417

Sans voir votre code, il est difficile de faire autre chose que de deviner ce qui pourrait être un problème potentiel.

Actuellement, tout ce que nous pouvons voir, c'est qu'il existe très probablement une chaîne trop grande pour être encodée, sinon vous n'obtiendrez pas le message d'erreur.

Comment cette chaîne est construite et pourquoi elle existe ... 

c'est une question à laquelle nous ne pouvons pas vraiment répondre. Vous voudrez peut-être développer votre question un peu plus afin que nous puissions voir un peu plus loin dans le terrier et aider à trouver une solution. :)

0
D Prince