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

如何配置VS2019中Xamarin Android项目使开启链接时xamarin-fingerprint正常运行

Xamarin.Forms Android项目开启SDK链接时xamarin-fingerprint插件兼容配置方案

出现该问题的核心原因是Xamarin托管链接器在剪裁SDK程序集时,误删除了xamarin-fingerprint插件依赖的托管类型和调用入口,你之前配置的com.samsung.**过滤规则仅对ProGuard/R8生效,对托管链接器无作用,可按以下步骤配置解决:

步骤1:配置跳过链接的托管程序集

  • 右键Android项目 → 选择「属性」→ 切换到「Android选项」页 → 找到「跳过链接程序集」输入框
  • 输入以下程序集名称,多个程序集之间用分号分隔:
    Plugin.Fingerprint;Plugin.Fingerprint.Abstractions
  • 保存项目配置,清理解决方案后重新编译运行。如果仍存在崩溃问题,继续执行后续步骤。

步骤2:添加链接器描述文件

部分场景下仅跳过指定程序集仍会出现依赖链剪裁问题,需要通过链接器描述文件显式指定保留所有插件相关类型:

  • 在Android项目根目录新建XML文件,命名为LinkerDescription.xml
  • 右键该文件 → 选择「属性」→ 将「生成操作」设置为LinkDescription
  • 在文件中填入以下内容:
<?xml version="1.0" encoding="utf-8" ?>
<linker>
  <assembly fullname="Plugin.Fingerprint">
    <type fullname="*" />
  </assembly>
  <assembly fullname="Plugin.Fingerprint.Abstractions">
    <type fullname="*" />
  </assembly>
  <assembly fullname="Mono.Android">
    <type fullname="Android.Hardware.Fingerprint.*" />
    <type fullname="AndroidX.Biometric.*" />
  </assembly>
</linker>

步骤3:补充Java层保留规则(适配高版本Android)

即使未手动开启ProGuard/R8,部分高版本Visual Studio在开启SDK链接时会默认触发基础的Java代码压缩,可补充规则避免插件的原生调用被剪裁:

  • 在Android项目根目录新建proguard.cfg文件
  • 右键该文件 → 选择「属性」→ 将「生成操作」设置为ProguardConfiguration
  • 在文件中填入以下内容:
-keep class com.samsung.android.sdk.pass.** { *; }
-keep class androidx.biometric.** { *; }
-keep class Plugin.Fingerprint.** { *; }

完成所有配置后,将链接器属性改为Sdk assemblies only,完全清理解决方案后重新编译部署到物理设备即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:06:03