我试图在Xamarin中使用proguard。 所以我启用了它在项目选项(选中Enable ProGuard
),我在属性中创建的文件proguard.cfg
,(如新的文本文件,是不是?) 和检查BuildAction的 - > ProguardConfigurationXamarin proguard.ParseException:文件'Properties/proguard.cfg'的第1行中的未知选项''
proguard文件只包含一个-keep配置和一个注释。无论我离开或删除评论,我总是得到第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.** {*;}
我得到一个Unknown option '' in line 1
错误。
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: 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)
任何想法?
perl -e 's/\xef\xbb\xbf//;' -pi~ proguard.cfg
谢谢! Notepad ++使用“UTF-8编码(无BOM)”效果很好! –
如果这个过程更加完善,那会很好。在项目设置中启用proguard时,它应该自动在UTF-8编码的项目根目录下创建一个proguard.cfg。 proguard.cfg文件应该包含一些用于保存谷歌播放服务类的标准命令等等......这样,并不需要每个开发人员4-8小时才能正确设置proguard。 – Justin
尽管UTF-8是一个Visual Studio问题(我们正在为Xamarin专门开发一个修补程序),但Proguard默认保留项目确实会拉下Google Play服务和Android支持'proguard.keep'文件并将其包含在'Proguard'任务。 –