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

Xamarin.Essentials找不到UsesPermission类型报错如何修复

Xamarin Android 振动功能配置UsesPermission编译报错修复

报错原因

抛出CS0246找不到UsesPermissionAttribute的核心原因有两个:

  • 代码文件未引入UsesPermission特性所属的Android.App命名空间
  • 权限声明代码放错了项目位置,写在了跨平台共享代码项目中,而该项目未引用Xamarin.Android的基础类库,无法识别Android专属的特性

修复步骤

  1. 确认权限声明代码的存放位置:[assembly: UsesPermission(Android.Manifest.Permission.Vibrate)]这段代码必须放在Android端专属项目中,不能放在Xamarin.Forms的跨平台共享项目里。你可以直接把这段代码写到Android项目下的Properties/AssemblyInfo.cs文件中。
  2. 在存放权限声明的代码文件头部补充缺失的命名空间引用,完整代码参考如下:
    // 必须补充这行引用,UsesPermission定义在该命名空间下
    using Android.App;
    using Xamarin.Forms.Xaml;
    using Xamarin.Essentials;
    
    [assembly: XamlCompilation(XamlCompilationOptions.Compile)]
    [assembly: UsesPermission(Android.Manifest.Permission.Vibrate)]
    
  3. 重新编译项目即可解决报错。

补充说明:Android端的VIBRATE权限属于安装时自动授予的普通权限,不需要额外做运行时动态申请。配置完权限后直接调用Xamarin.Essentials提供的振动API即可生效,示例调用:

// 控制设备振动500毫秒
Vibration.Vibrate(TimeSpan.FromMilliseconds(500));
// 取消当前振动
// Vibration.Cancel();

内容的提问来源于stack exchange,提问作者Benjamin Morales Perez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:15:43