Android项目Manifest生成错误图标路径导致无法部署求助
我遇到过好几次这种Xamarin构建缓存或配置合并导致的残留问题,给你几个针对性的排查和解决步骤:
彻底清理项目缓存:这是最常见的解决办法。先右键项目选择
Clean,再右键解决方案选择Clean;接着手动删除项目目录下的bin和obj文件夹(这两个目录里的缓存经常会保留旧配置),之后重新构建项目。核对Activity注解的拼写与资源文件:确认你的Activity属性里
Icon = "@drawable/ic_launcher"的拼写完全正确,同时检查Resources/drawable(包括各种分辨率子目录,如drawable-hdpi、drawable-mdpi)下确实存在ic_launcher系列图标,且没有残留的旧Icon图标文件(避免构建时被误引用)。检查项目属性的Android Manifest配置:打开项目属性(右键项目→Properties),切换到
Android Manifest选项卡:- 确认Application Icon设置为
@drawable/ic_launcher; - 找到你的启动Activity,检查其图标设置是否也是
@drawable/ic_launcher,避免项目级配置覆盖了Activity注解的设置。
- 确认Application Icon设置为
手动编辑项目文件(.csproj):有时候项目文件里会残留模板生成的旧配置。用文本编辑器打开你的项目.csproj文件,搜索
<AndroidLauncherIcon>或类似节点,看看有没有指向旧Icon的配置,把它修改为ic_launcher后保存,再重新加载项目。直接在Manifest文件中指定Activity图标:尝试在项目的
Properties/AndroidManifest.xml里,给你的启动Activity标签手动添加android:icon="@drawable/ic_launcher"属性,比如:<activity android:name=".MainActivity" android:icon="@drawable/ic_launcher" android:label="你的应用名称" android:launchMode="singleTop" android:configChanges="..."> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>这种手动指定的方式优先级较高,通常能覆盖注解生成的配置。
重启IDE:如果以上步骤都没效果,试试重启你的IDE(Visual Studio/Rider),有时候IDE自身的缓存会导致配置无法及时更新。
内容的提问来源于stack exchange,提问作者JonZarate

