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

Xamarin.Android点击静态快捷方式提示Application isn't installed如何解决

问题根源

你的Xamarin.Android项目没有显式指定MainActivity的Android层类名,编译时Xamarin会自动生成MD5格式的类名,和你在shortcuts.xml中声明的tk.supernova.tmtimer.MainActivity不匹配,系统找不到目标Activity,才会抛出「Application isn't installed」的报错。
另外你同时在AndroidManifest.xml手动注册Activity、又在C#代码中通过[Activity]特性声明Activity,存在重复配置冲突的问题。


解决步骤

  1. 显式指定MainActivity的类名
    在MainActivity的[Activity]特性中添加Name属性,强制指定Android层的全类名和你配置的一致,同时补充Exported = true适配高版本Android要求:
namespace tk.supernova.tmtimer
{
    [Activity(
        Name = "tk.supernova.tmtimer.MainActivity",
        Label = "@string/app_name", 
        MainLauncher = true, 
        WindowSoftInputMode = SoftInput.AdjustPan,
        Exported = true)]
    public partial class MainActivity : AppCompatActivity
    {    
        // 原有代码不变
    }
}
  1. 清理重复的Activity配置
    删除AndroidManifest.xml中手动添加的整个<activity android:name="tk.supernova.tmtimer.MainActivity"...>节点,Xamarin.Android编译时会自动根据C#特性生成对应的Activity注册配置,避免两边配置不一致导致冲突。

如果你需要保留手动配置,务必保证手动配置的所有属性和C#特性的配置完全一致,且类名和上面指定的Name属性相同。

  1. 验证配置(可选)
    编译项目后,找到编译生成的最终AndroidManifest文件(路径一般为obj/[Debug/Release]/android/AndroidManifest.xml),确认其中MainActivity的android:name属性值为tk.supernova.tmtimer.MainActivity,shortcuts.xml中的targetClass和该值完全一致即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 21:54:04