我正在将我的 Xamarin 应用程序(适用于 Android)转换为 .NET 8。资源/值中的应用程序源代码具有以下文件:
颜色.xml:
<resources>
<color name="colorPrimary">#DD5706</color>
<color name="colorPrimaryDark">#1B3147</color>
<color name="colorAccent">#8167E6</color>
<color name="white">#ffffff</color>
<color name="darkwhite">#EFFFFE</color>
<color name="transparent">#00ffff</color>
<color name="semitransparent">#880000</color>
<color name="orange">#ff8800</color>
<color name="light_orange">#e27d18</color>
<color name="light_blue">#87CEEB</color>
<color name="black">#000000</color>
<color name="menuButtonColor">#ea8e44</color>
<color name="btn_normal">#ea8e44</color>
<color name="pressed_color">#e27d18</color>
<color name="default_color">#f8f1e7</color>
<color name="selected">#f8dcd3</color>
</resources>
在drawable文件夹中是background.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/background_light" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@color/orange" android:state_pressed="true" android:state_selected="true"/>
<item android:drawable="@color/light_blue" android:state_pressed="false" android:state_selected="true"/>
</selector>
然而,当我构建应用程序时,我看到一系列如下错误:
resource color/orange (aka com.xyz.MyApp:color/orange) not found.
有人建议我将其添加到 csproj 文件中:
<ItemGroup> <AndroidResource Include="Resource Path" /> </ItemGroup>
如果这与我昨天提出的问题重复,我们深表歉意。
要解决此问题,请确保在项目配置中正确引用资源文件(colors.xml 和 background.xml)。
确认资源文件: 确保colors.xml位于Resources/values中,background.xml位于项目目录中的Resources/drawable中。
更新 .csproj 文件: 修改您的 .csproj 文件以包含这些资源:
<ItemGroup>
<AndroidResource Include="Resources\values\colors.xml" />
<AndroidResource Include="Resources\drawable\background.xml" />
</ItemGroup>
如果您的文件位置不同,请调整路径。
清洁和重建: 更新 .csproj 文件后,清理并重建项目以确保正确包含所有资源:
清理解决方案:在 Visual Studio 中右键单击您的解决方案,然后选择“清理解决方案”。 重建解决方案:清理后,再次右键单击并选择“重建解决方案”。 验证资源参考: 仔细检查background.xml中的引用(例如@color/orange和@color/light_blue)是否与colors.xml中定义的颜色名称匹配。
这应该可以解决找不到资源的错误,并确保您的 Xamarin 应用程序顺利过渡到 .NET 8。