Internal error parsing svg file in android studio

Solution 1:

UPDATE December 23, 2018

Base on issuetracker seems this bug fixed in Android Studio 3.2 Canary 5 and above so update your android studio is another way to fix! now i use version 3.2.1 and work fine.

OLD ANSWER

Finally i found solution. I don't know what going on but i have same problem and fixed when i download same svg again and open it with notepad++ and export it with different name as svg! and it's work!

EDIT

If you use flat icon for download svg, before download just click on edit and then download! this svg work fine in android studio.

I have android studio 3.1.1

This just a bug in android studio

EDIT 2

There is another bug in decimal numbers in svg viewBox that can be fixed by change decimal to integer (thanks to crgarrido)

Sample :

Change decimal numbers to integers numbers in svg file header

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

Change 135.4 to 135

Solution 2:

In my case, I had a decimal value indicating the height, rounded it to an integer solved the issue

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

Changing the 135.4 to a 136 did the job

Update

After that, In the IDE Fatal errors section I constated the following exception:

NumberFormatException

The vector assert parser fails when you have a decimal dimension, I reported the issue. I hope it will be fixed soon.

Solution 3:

I had this error too, and I think I got an answer.

When you "Add a Vector Asset" in your project, Android Studio creates a .xml file in res/drawable folder.

So I found this website : http://a-student.github.io/SvgToVectorDrawableConverter.Web/

You just have to drop your .svg file in the box and wait a few seconds.

Then, just right click on drawable folder in Android Studio, New -> Drawable resource file, set the icon name, etc... And you finally replace the content by the xml code the website gave you.

Save the file, and your icon is ready to go !

Solution 4:

I solved the problem adding width and height to the svg tag.

Example

From

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

To

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

I guess Android Studio can't add vectors from svg files without mentioning the dimensions.

Solution 5:

Hi you have to convert all float number to integer. for example open .svg file in text editor

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

change to

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