C# Xamarin在发布模式下与Proguard链接

C# Xamarin在发布模式下与Proguard链接,c#,android,xamarin,xamarin.ios,proguard,C#,Android,Xamarin,Xamarin.ios,Proguard,我正在为Android和iOS开发一款Xamarin表单应用程序。我们使用作为.aar包提供的第三方SDK,将构建操作设置为LibraryProjectZip。然后,我们有来自表单、iOS和Android部分代码的调用。如果我没记错的话,链接在调试模式下可以正常工作 我无法让链接器+ProGuard一起工作。我读了好几天书,尝试了很多解决方案。我有java代码1和2——所以我更新了ProGuard,它开始工作了。然后链接产生了错误-UnauthorizedAccessException,因此我必

我正在为Android和iOS开发一款Xamarin表单应用程序。我们使用作为
.aar
包提供的第三方SDK,将构建操作设置为
LibraryProjectZip
。然后,我们有来自表单、iOS和Android部分代码的调用。如果我没记错的话,链接在调试模式下可以正常工作

我无法让
链接器+ProGuard
一起工作。我读了好几天书,尝试了很多解决方案。我有
java代码1和2
——所以我更新了ProGuard,它开始工作了。然后链接产生了错误-
UnauthorizedAccessException
,因此我必须转到相应的文件夹并删除
只读
权限。然后,项目成功构建,但应用程序功能丢失,即使它正在运行,在
设备日志中,我可以看到一些类丢失

为了解决这个问题,我创建了一个
ProGuard.cfg
,并添加了使用
“-keep”
命令崩溃的大多数程序集。然而,我似乎找不到一种方法来保留这个
.aar
包的功能

有什么建议吗


我在Windows 10上使用VS 2017和Xamarin 7.4以及jdk 1.8,以管理员身份运行。已尝试链接
Sdk程序集/用户和Sdk程序集
<代码>多索引
处于启用状态。我尝试将所有项目的程序集的名称放在“跳过链接程序集”字段中,但没有结果。在设备日志中,我得到了失败调用的包名,因此我尝试将其添加到ProGuard中,但没有帮助。(看起来像是
“-keep class com.something.something”

我不能评论,但这篇博客文章可能有用

“链接器分析器是一个命令行工具,用于分析在链接程序集步骤中记录的依赖项。它将显示链接程序集中标记和生成的项目。”


我不能发表评论,但这篇博文可能有用

“链接器分析器是一个命令行工具,用于分析在链接程序集步骤中记录的依赖项。它将显示链接程序集中标记和生成的项目。”


实际上帮助我的是搜索一个更通用的proguard配置文件,阻止链接器删除一些常用的Android库,比如……再加上我通过查看错误发现的一些东西,我知道这可能不是我最初提到的问题的解决方案,但实际上我们不再使用ProGuard了。这不是很多人推荐的,但在Xamarin中,它并不会混淆代码,我需要它主要是为了减少应用程序的大小。然而,在摆脱了我支持的旧体系结构——x86、armeabi和x86_64之后,这个包足够小了。实际上帮助我的是搜索一个更通用的proguard配置文件,阻止链接器删除一些常用的Android库,比如说……再加上我通过查看错误发现的一些东西,我让它工作了。我知道这可能不是我最初提到的问题的解决方案,但实际上我们不再使用ProGuard了。这不是很多人推荐的,但在Xamarin中,它并不会混淆代码,我需要它主要是为了减少应用程序的大小。然而,在摆脱了我支持的旧体系结构——x86、armeabi和x86_64之后,这个包就足够小了。