Kok Soon
Kok Soon

Reputation: 603

Internal error parsing svg file in android studio

Start from this month, I was not able to import any svg file though Vector Asset in my laptop, I always get the msg 'Internal error parsing abc.svg'

I tried to import same svg file using android studio in other laptop, it works, but my laptop cannot import anymore.

I was using android studio in my laptop around 2 years and has been go through many updates, but this month suddenly cannot import anymore, I had performed factory reset in my laptop, and re-install android studio again. I tried create new project as well, but it still cannot work, anyone can help me?

enter image description here

Upvotes: 50

Views: 27751

Answers (11)

Blundell
Blundell

Reputation: 76536

I solved my problem by removing the comma separated values in the viewBox, i.e. I had

viewBox="0, 0, 350,450"

and changing it to

viewBox="0 0 350 450"

allowed it to be imported

Upvotes: 1

Radesh
Radesh

Reputation: 13575

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

Upvotes: 62

Deepak Kataria
Deepak Kataria

Reputation: 574

Open your SVG file in Notepad. Round all the decimal values in viewBox ="no decimal values allowed here".

Upvotes: -1

Kaushal kumar
Kaushal kumar

Reputation: 1

I was able to solve this internal error by parsing abc.svg error problem, please change width="512px" and height="512px" and it should work.

enter image description here

Upvotes: -2

Amin Emadi
Amin Emadi

Reputation: 17

w: 85.3 h:120.4px ==> w:85px H:120px its ok and work

Upvotes: -1

and
and

Reputation: 31

I used Gimp and Export Path to produce a simple SVG. It had the width and height as decimal inches. Changing these to the pixel width/height fixed it.

Upvotes: 0

Erfan Eghterafi
Erfan Eghterafi

Reputation: 5625

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;"

Upvotes: 2

sunlover3
sunlover3

Reputation: 2049

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.

Upvotes: 4

crgarridos
crgarridos

Reputation: 9273

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.

Upvotes: 61

Mathieu
Mathieu

Reputation: 1713

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 !

Upvotes: 15

Lu&#237;s Henriques
Lu&#237;s Henriques

Reputation: 634

The problem is your SVG file. You must set the page measure to be in pixels.

With Inkscape, in Windows, press Ctrl + Shift + D to open the Document Properties. Set the size units to pixels (px).

Hope it helps. Let me know if it worked.

Upvotes: 1

Related Questions