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

Xamarin.Forms Android项目构建报错求助:CS0234、CS0103等问题

Xamarin.Forms Android 构建错误排查与解决

遇到的构建错误

  • CS0234: 命名空间“Xamarin.Forms”中不存在类型或命名空间名称“Forms”(是否缺少程序集引用?)
  • CS0103: 当前上下文中不存在名称“LoadApplication”
  • CS0234: 命名空间“Xamarin.Forms.Platform”中不存在类型或命名空间名称“Android”(是否缺少程序集引用?)
  • CS0234: 命名空间“Xamarin.Essentials”中不存在类型或命名空间名称“Platform”(是否缺少程序集引用?)
  • 引用链接失败。
  • 未找到资源style/MainTheme.Base。

项目相关代码文件

MainActivity.cs

using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.OS;
using Xamarin.Essentials;
using Xamarin.Forms;

namespace PFAG1_2Cars.Mobile.Droid
{
    [Activity(Label = "PFAG1-2Cars", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            LoadApplication(new App());
        }

        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
}

styles.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>

    <style name="MainTheme" parent="MainTheme.Base">
        <!-- As of Xamarin.Forms 4.6 the theme has moved into the Forms binary -->
        <!-- If you want to override anything you can do that here. -->
        <!-- Underneath are a couple of entries to get you started. -->

        <!-- Set theme colors from https://aka.ms/material-colors -->
        <!-- colorPrimary is used for the default action bar background -->
        <!--<item name="colorPrimary">#2196F3</item>-->
        <!-- colorPrimaryDark is used for the status bar -->
        <!--<item name="colorPrimaryDark">#1976D2</item>-->
        <!-- colorAccent is used as the default value for colorControlActivated
         which is used to tint widgets -->
        <!--<item name="colorAccent">#FF4081</item>-->
    </style>
</resources>

PFAG1_2Cars.Mobile.Android.csproj

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{37CE77A6-360E-4A23-BFBE-9A0D80F7DB93}</ProjectGuid>
    <ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <TemplateGuid>{c9e5eea5-ca05-42a1-839b-61506e0a37df}</TemplateGuid>
    <OutputType>Library</OutputType>
    <RootNamespace>PFAG1_2Cars.Mobile.Droid</RootNamespace>
    <AssemblyName>PFAG1-2Cars.Mobile.Android</AssemblyName>
    <Deterministic>True</Deterministic>
    <AndroidApplication>True</AndroidApplication>
    <AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
    <AndroidResgenClass>Resource</AndroidResgenClass>
    <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
    <MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
    <MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
    <AndroidUseLatestPlatformSdk>false</AndroidUseLatestPlatformSdk>
    <TargetFrameworkVersion>v11.0</TargetFrameworkVersion>
    <AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
    <AndroidUseAapt2>true</AndroidUseAapt2>
    <AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
    <NuGetPackageImportStamp>
    </NuGetPackageImportStamp>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>portable</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug</OutputPath>
    <DefineConstants>DEBUG;</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <AndroidLinkMode>None</AndroidLinkMode>
    <EmbedAssembliesIntoApk>false</EmbedAssembliesIntoApk>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>portable</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <AndroidManagedSymbols>true</AndroidManagedSymbols>
    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Mono.Android" />
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Numerics" />
    <Reference Include="System.Numerics.Vectors" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="System.Data.SqlClient">
      <Version>4.8.6</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Essentials">
      <Version>1.8.1</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms">
      <Version>5.0.0.2662</Version>
    </PackageReference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="MainActivity.cs" />
    <Compile Include="Resources\Resource.designer.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <None Include="Resources\AboutResources.txt" />
    <None Include="Assets\AboutAssets.txt" />
    <None Include="Properties\AndroidManifest.xml" />
  </ItemGroup>
  <ItemGroup>
    <AndroidResource Include="Resources\values\styles.xml" />
    <AndroidResource Include="Resources\values\colors.xml" />
    <AndroidResource Include="Resources\mipmap-anydpi-v26\icon.xml" />
    <AndroidResource Include="Resources\mipmap-anydpi-v26\icon_round.xml" />
    <AndroidResource Include="Resources\mipmap-hdpi\icon.png" />
    <AndroidResource Include="Resources\mipmap-hdpi\launcher_foreground.png" />
    <AndroidResource Include="Resources\mipmap-mdpi\icon.png" />
    <AndroidResource Include="Resources\mipmap-mdpi\launcher_foreground.png" />
    <AndroidResource Include="Resources\mipmap-xhdpi\icon.png" />
    <AndroidResource Include="Resources\mipmap-xhdpi\launcher_foreground.png" />
    <AndroidResource Include="Resources\mipmap-xxhdpi\icon.png" />
    <AndroidResource Include="Resources\mipmap-xxhdpi\launcher_foreground.png" />
    <AndroidResource Include="Resources\mipmap-xxxhdpi\icon.png" />
    <AndroidResource Include="Resources\mipmap-xxxhdpi\launcher_foreground.png" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="Resources\drawable\" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\PFAG1-2Cars.Mobile\PFAG1-2Cars.Mobile.csproj">
      <Project>{F19BC5C6-F7E9-478B-93F6-DF4225B7D476}</Project>
      <Name>PFAG1-2Cars.Mobile</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
</Project>

错误排查与解决方案

针对命名空间/引用缺失错误(CS0234、CS0103、引用链接失败)

这些错误核心原因是NuGet包未正确加载或项目引用异常,按以下步骤处理:

  1. 清理重建解决方案:右键解决方案 → 清理解决方案,再右键 → 重建解决方案,强制重新生成所有依赖项。
  2. 修复NuGet包:
    • 打开NuGet包管理器,检查Android项目中Xamarin.Forms和Xamarin.Essentials包是否已正确安装,版本与共享项目保持一致。
    • 若存在异常,卸载这两个包后重新安装对应版本(项目中指定的Xamarin.Forms 5.0.0.2662、Xamarin.Essentials 1.8.1)。
  3. 验证项目引用:确认Android项目对共享项目PFAG1-2Cars.Mobile的引用路径正确,且共享项目已成功构建。

针对未找到MainTheme.Base错误

MainTheme.Base是Xamarin.Forms Android项目的基础主题,缺失会导致资源加载失败,处理方式:

  1. 添加基础主题定义:在styles.xml中补充MainTheme.Base的定义,示例如下:
    <style name="MainTheme.Base" parent="Theme.MaterialComponents.Light.DarkActionBar">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primaryDark</item>
        <item name="colorAccent">@color/accent</item>
    </style>
    
  2. 补充颜色资源:确保Resources/values/colors.xml中存在对应颜色值:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="primary">#2196F3</color>
        <color name="primaryDark">#1976D2</color>
        <color name="accent">#FF4081</color>
    </resources>
    
  3. 重新生成资源文件:右键Android项目 → 清理,再重新生成项目,触发Resource.designer.cs的更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:22:02