Eino Gourdin Eino Gourdin - 1 year ago 183
Android Question

Xamarin proguard.ParseException: Unknown option '' in line 1 of file 'Properties/proguard.cfg'

I'm trying to use proguard with Xamarin.
So I enabled it in project options (checked

Enable ProGuard
), and I created a file
in Properties, (as new Text file, is it right?)
and checked the BuildAction -> ProguardConfiguration

Proguard file config

The proguard file contains only a -keep configuration, with a comment. Whether I leave or remove the comment, I always get a parse error on line 1 :

# test comment
-keep class !android.support.v7.view.menu.**, !android.support.design.internal.NavigationMenu, !android.support.design.internal.NavigationMenuPresenter, !android.support.design.internal.NavigationSubMenu, android.support.** {*;}

I get a
Unknown option '' in line 1

Error: Tool exited with code: 1. Output: proguard.ParseException:
Unknown option '' in line 1 of file 'Properties/proguard.cfg'

included from argument number 10 at
proguard.ConfigurationParser.parse(ConfigurationParser.java:191) at
proguard.ProGuard.main(ProGuard.java:484) (WheezMe.Droid)

Any idea ?

Answer Source

I added this section of the docs awhile back to mention that you need to remove the BOM(Byte order mark):

Note: If you get an error like the following, then your configuration file contains a byte order mark (BOM), which the ProGuard tool cannot handle:

Unknown option '-keep' in line 1 of file 'proguard.cfg'

To prevent this problem, save your custom configuration file from a text editor that allows you to omit the BOM. For example, if you are saving from Notepad++, you can use the Encoding > Encode in UTF-8 Without BOM option to save your ProGuard configuration file without BOM.


By all means you can use whatever method you'd like to remove the BOM. Notepad++ makes it pretty simple. Adding the full solution here to help others for visibility.