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

如何在Xamarin中持久化设置Android应用属性(如allowBackup)

解决方案:用[Application()]特性持久化配置android:allowBackup

Xamarin的自动清单生成机制确实会覆盖手动编辑的AndroidManifest.xml内容,而且[Activity()]特性只负责单个Activity的配置,管不到应用级的allowBackup和fullBackupOnly属性。不过我们可以通过应用级的[Application()]特性来解决这个问题,这个配置保存在代码里,完全不会被构建过程覆盖。

具体步骤如下:

  1. 创建或找到你的自定义Application类
    如果你的项目里还没有继承自Android.App.Application的类,那就新建一个;如果已经有了,直接用现有的就行。

  2. 在[Application()]特性中添加配置参数
    在特性里直接指定AllowBackup和FullBackupOnly的值,Xamarin构建时会自动把这些参数转换成AndroidManifest.xml里的对应属性。示例代码如下:

    using Android.App;
    using Android.Runtime;
    
    [Application(AllowBackup = false, FullBackupOnly = false)]
    public class CustomApp : Application
    {
        // 必须保留这个构造函数,Xamarin需要它来绑定原生对象
        public CustomApp(IntPtr javaReference, JniHandleOwnership transfer) 
            : base(javaReference, transfer)
        {
        }
    
        // 这里可以按需重写Application的生命周期方法,比如OnCreate()
        public override void OnCreate()
        {
            base.OnCreate();
            // 初始化逻辑等
        }
    }
    
  3. 清理旧的手动配置
    把之前手动添加到AndroidManifest.xml里的android:allowBackup属性删掉,避免冲突——现在特性的配置会自动生成到最终的清单文件中。

为什么这个方法有效?

Xamarin的构建系统会优先读取代码中[Application()]特性的配置,来生成AndroidManifest.xml里的<application>标签。因为这个配置写在C#代码文件中,不是临时生成的清单文件,所以无论你怎么重建项目,配置都不会丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:19:07