You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Android创建CognitoAWSCredentials子类实例遇Crypt32.dll缺失异常

解决Xamarin.Android中创建CognitoAWSCredentials子类实例时出现Crypt32.dll找不到的异常

可能的原因及修复方案

  • 确认AWS SDK版本兼容性
    确保使用的AWSSDK.CognitoIdentity及相关AWS NuGet包与当前Xamarin.Android版本匹配。旧版本SDK可能在Android环境下对系统库的调用存在适配问题,尝试升级到最新稳定版,或回退到经过验证的兼容版本。

  • 添加必要权限并配置项目框架
    在项目的AndroidManifest.xml中添加以下权限:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    

    同时在项目属性的Android选项中,将目标框架设置为Android 8.0及以上版本,若适用可勾选“启用AOT编译”,部分场景下能解决原生库绑定异常。

  • 规避Windows平台依赖的调用
    该异常本质是AWS SDK在Android环境下错误调用了Windows专属的Crypt32.dll,可通过自定义凭证逻辑绕过:

    1. 不直接继承CognitoAWSCredentials,转而实现AWSCredentials接口,自行处理凭证的获取与刷新逻辑。
    2. 在自定义凭证类中,通过AWS REST API直接与Cognito Identity服务交互,避开SDK中依赖Windows加密库的代码段。
  • 清理重建项目
    删除项目bin、obj目录及.nuget/packages下的AWS包缓存,重新还原NuGet包并编译项目,缓存损坏文件也可能引发库绑定异常。

  • 调整链接器设置
    在项目属性的“链接器行为”中,选择“SDK程序集仅”或“不链接”,避免链接器误删加密相关必要组件。若必须选择“链接所有程序集”,需手动保留AWS SDK相关程序集及依赖项。

内容的提问来源于stack exchange,提问作者Andy Joiner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:10:37