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

Xamarin.Android应用仅清理编译后可找到启动Activity,后续运行报错求助

解决Xamarin.Android修改代码后重启出现ClassNotFoundException的问题

这种情况我在帮开发者排查Xamarin.Android问题时碰到过不少,本质是增量编译/快速部署的缓存异常导致的:Xamarin生成的Android绑定类(就是那个md5b14ee1c038eed1ee5328e926d768294f.Login)和修改后的代码不匹配,旧缓存没有被正确清理,导致系统找不到新的类文件。

给你几个实操性的解决方案,按优先级尝试:

1. 关闭快速部署(最常用的解决办法)

快速部署是Xamarin为了加速调试做的增量推送,但很容易出现缓存不一致的问题:

  • 右键你的Xamarin.Android项目 → 属性 → Android选项
  • 取消勾选「使用快速部署(仅限调试)」
  • 之后重新部署项目,每次都会完整打包安装,彻底避免缓存冲突。

2. 规范清理重建项目(替代手动删bin/obj)

手动删文件夹虽然有效,但可以用IDE自带的功能更高效地清理:

  • 在Visual Studio中,点击顶部菜单「生成」→ 清理解决方案,接着点击重新生成解决方案
  • 如果你习惯用命令行,针对.NET风格的项目可以执行:
    dotnet clean
    dotnet build
    
    旧的MSBuild项目则用:
    msbuild /t:Clean
    msbuild /t:Rebuild
    

3. 禁用C#增量编译

有时候C#项目的增量编译和Xamarin的Android打包流程会出现冲突:

  • 右键项目 → 属性 → 生成
  • 取消勾选「启用增量编译」
  • 这个选项会让每次编译稍慢一点,但能彻底避免增量更新带来的缓存异常。

4. 清除设备/模拟器的应用缓存

如果上面的方法都无效,可能是设备端的旧缓存残留:

  • 在模拟器的设置里找到你的应用「MyApp.MyApp」
  • 进入「存储」选项,点击「清除数据」和「清除缓存」
  • 之后重新部署项目即可。

预防建议

如果这个问题频繁出现,建议在开发阶段暂时关闭快速部署,等功能开发完成后再开启以提升调试速度;每次修改核心代码(比如Activity相关逻辑)后,先执行清理再重新生成。

内容的提问来源于stack exchange,提问作者Mathias Rönnlund

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:15:28