web-dev-qa-db-fra.com

Erreur interne lors de l'analyse du fichier svg dans le studio Android

Commencez ce mois-ci, je n'ai pas été en mesure d'importer de fichier svg bien que Vector Asset dans mon ordinateur portable, je reçois toujours le msg 'Erreur interne lors de l'analyse de abc.svg'.

J'ai essayé d'importer le même fichier svg en utilisant Android studio dans un autre ordinateur portable, cela fonctionne, mais mon ordinateur portable ne peut plus importer.

J'utilisais Android studio sur mon ordinateur portable il y a environ 2 ans et j'ai subi de nombreuses mises à jour, mais ce mois-ci, je ne peux plus importer, j'ai réinitialisé les paramètres d'usine de mon ordinateur portable et j'ai réinstallé Android studio à nouveau. J'ai aussi essayé de créer un nouveau projet, mais cela ne fonctionne toujours pas, tout le monde peut m'aider?

enter image description here

43
Kok Soon

UPDATE 23 décembre 2018

La base sur issuetracker semble que ce bogue ait été corrigé dans Android Studio 3.2 Canary 5 et versions ultérieures, vous devez donc mettre à jour votre studio Android! Maintenant, j'utilise la version 3.2.1 et fonctionne bien.

ANCIENNE RÉPONSE

Enfin j'ai trouvé une solution. Je ne sais pas ce qui se passe, mais j'ai le même problème et résolu lorsque je télécharge le même svg à nouveau et l'ouvre avec Notepad ++ et l'exporte sous un nom différent, comme svg! et c'est du travail!

EDIT

Si vous utilisez icône plate pour télécharger svg, avant de télécharger, il vous suffit de cliquer sur Modifier, puis de télécharger! ce svg fonctionne bien dans Android studio.

J'ai Android studio 3.1.1

Ceci est juste un bug dans Android studio

EDIT 2

Il y a un autre bogue dans les nombres décimaux dans svg viewBox qui peut être corrigé en changeant décimal en entier (merci à crgarrido)

Échantillon :

Changer les nombres décimaux en nombres entiers dans l'en-tête du fichier svg

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 375 135.4">

Changer 135.4 en 135

58
Radesh

Dans mon cas, j'avais une valeur décimale indiquant la hauteur, arrondie à un entier pour résoudre le problème.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 375 135.4">

Changer le 135.4 en un 136 a fait le travail

Mettre à jour

Après cela, dans la section des erreurs fatales de l'IDE , j'ai constaté l'exception suivante:

NumberFormatException

L'analyseur d'assertion de vecteur échoue lorsque vous avez une dimension décimale. J'ai signalé le problème. J'espère que cela sera corrigé bientôt.

60
crgarridos

J'ai aussi eu cette erreur et je pense avoir obtenu une réponse.

Lorsque vous "ajoutez un actif vectoriel" à votre projet, Android Studio crée un fichier .xml dans le dossier res/drawable.

J'ai donc trouvé ce site Web: http://a-student.github.io/SvgToVectorDrawableConverter.Web/

Il vous suffit de déposer votre fichier .svg dans la boîte et d'attendre quelques secondes.

Ensuite, cliquez avec le bouton droit de la souris sur le dossier pouvant être dessiné dans Android Studio, Nouveau -> Fichier de ressources pouvant être dessiné, définissez le nom de l'icône, etc.

Enregistrez le fichier et votre icône est prête à fonctionner!

11
Elynad

J'ai résolu le problème en ajoutant la largeur et la hauteur à la balise svg.

Exemple

De

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 43.42 56.15">

À

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 43.42 56.15" width="24" height="24">

J'imagine que Android Studio ne peut pas ajouter de vecteurs à partir de fichiers svg sans mentionner les dimensions.

4
sunlover3

Bonjour, vous devez convertir tous les nombres flottants en nombres entiers. par exemple, ouvrir un fichier .svg dans un éditeur de texte

 width="292.362px" height="292.362px" viewBox="0 0 292.362 292.362" style="enable-background:new 0 0 292.362 292.362;"

changer à

width="292px" height="292px" viewBox="0 0 292 292" style="enable-background:new 0 0 292 292;"
2
Erfan egtfi

Le problème est votre fichier SVG. Vous devez définir la mesure de la page pour qu'elle soit en pixels.

Avec Inkscape, sous Windows, appuyez sur Ctrl + Shift + D pour ouvrir les propriétés du document. Définissez les unités de taille en pixels (px).

J'espère que ça aide. Faites-moi savoir si cela a fonctionné.

1
Luís Henriques

J'ai utilisé Gimp et Export Path pour produire un fichier SVG simple. Il avait la largeur et la hauteur en pouces décimaux. Changer ceux-ci en pixels largeur/hauteur le fixe.

0
and

w: 85.3 h: 120.4px ==> w: 85px H: 120px c'est ok et ça marche

0
Amin Emadi