Xamarin proguard.ParseException: 文件 'Properties/proguard.cfg' 第 1 行中的未知选项“”
Xamarin proguard.ParseException: Unknown option '' in line 1 of file 'Properties/proguard.cfg'
我正在尝试将混淆器与 Xamarin 一起使用。
所以我在项目选项中启用了它(选中Enable ProGuard
),并在属性中创建了一个文件proguard.cfg
,(作为新的文本文件,对吗?)
并检查了 BuildAction -> ProguardConfiguration
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 命令从文件中删除字节顺序标记:
perl -e 's/\xef\xbb\xbf//;' -pi~ proguard.cfg
我刚才添加了文档的这一部分,以提及您需要删除 BOM(字节顺序标记):
注意:如果您遇到如下错误,则说明您的配置文件包含字节顺序标记 (BOM),ProGuard 工具无法处理该错误:
Unknown option '-keep' in line 1 of file 'proguard.cfg'
为防止出现此问题,请使用允许省略 BOM 的文本编辑器保存自定义配置文件。例如,如果您从 Notepad++ 保存,则可以使用“编码”>“不带 BOM 的 UTF-8 编码”选项来保存不带 BOM 的 ProGuard 配置文件。
无论如何,您可以使用任何您喜欢的方法来删除 BOM。 Notepad++ 使它变得非常简单。在此处添加完整的解决方案以帮助其他人提高知名度。
编辑:
正确的 link 可以在这里找到:
https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/proguard/#File_Issues
我正在尝试将混淆器与 Xamarin 一起使用。
所以我在项目选项中启用了它(选中Enable ProGuard
),并在属性中创建了一个文件proguard.cfg
,(作为新的文本文件,对吗?)
并检查了 BuildAction -> ProguardConfiguration
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 命令从文件中删除字节顺序标记:
perl -e 's/\xef\xbb\xbf//;' -pi~ proguard.cfg
我刚才添加了文档的这一部分,以提及您需要删除 BOM(字节顺序标记):
注意:如果您遇到如下错误,则说明您的配置文件包含字节顺序标记 (BOM),ProGuard 工具无法处理该错误:
Unknown option '-keep' in line 1 of file 'proguard.cfg'
为防止出现此问题,请使用允许省略 BOM 的文本编辑器保存自定义配置文件。例如,如果您从 Notepad++ 保存,则可以使用“编码”>“不带 BOM 的 UTF-8 编码”选项来保存不带 BOM 的 ProGuard 配置文件。
无论如何,您可以使用任何您喜欢的方法来删除 BOM。 Notepad++ 使它变得非常简单。在此处添加完整的解决方案以帮助其他人提高知名度。
编辑:
正确的 link 可以在这里找到:
https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/proguard/#File_Issues