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

C# Android绑定库中Jetpack Compose依赖找不到Composer类问题

解决MAUI Android绑定库找不到androidx.compose.runtime.Composer的问题

核心问题

你用Android Studio构建的Compose库(.aar)在MAUI绑定库中无法解析androidx.compose.runtime.Composer,即便添加了对应Xamarin NuGet包仍报错,本质是绑定构建时未正确关联Compose运行时类,或依赖版本不匹配。

分步解决方案

1. 严格对齐版本号

Android Studio里Compose Runtime的版本必须和绑定库中Xamarin NuGet包版本完全匹配:

  • 比如你AS项目用的是Compose Runtime 1.7.7,绑定库就要用Xamarin.AndroidX.Compose.Runtime的1.7.7.x版本(去NuGet上找对应补丁号的包,比如1.7.7.1),别用1.7.6.1这种低版本。
  • 额外注意:Compose和Kotlin版本强绑定,1.7.7对应Kotlin 1.9.24,绑定库的Kotlin NuGet版本也要同步到1.9.24.x。

2. 精简并修正依赖配置

别混用AndroidMavenLibrary和PackageReference,优先用Xamarin官方NuGet,保留核心依赖即可,冗余依赖反而会出问题:

<ItemGroup>
  <!-- 核心Compose运行时 -->
  <PackageReference Include="Xamarin.AndroidX.Compose.Runtime" Version="1.7.7.1" />
  <!-- 匹配Compose版本的Kotlin依赖 -->
  <PackageReference Include="Xamarin.Kotlin.StdLib" Version="1.9.24.1" />
  <!-- 基础AndroidX依赖 -->
  <PackageReference Include="Xamarin.AndroidX.Annotation" Version="1.9.1.2" />
  <PackageReference Include="Xamarin.KotlinX.Coroutines.Core" Version="1.7.3.1" />
</ItemGroup>

3. 调整绑定库构建参数

在绑定库的.csproj里添加这些配置,确保绑定工具能处理Compose的Java 8+语法和类:

<PropertyGroup>
  <AndroidEnableDesugar>true</AndroidEnableDesugar>
  <AndroidJavaMaxHeapSize>1G</AndroidJavaMaxHeapSize>
</PropertyGroup>

<ItemGroup>
  <!-- 正确引用你的aar库 -->
  <AndroidLibrary Include="path/to/your-compose-library.aar" Bind="true" />
</ItemGroup>

4. 用Metadata.xml强制保留Composable方法

如果绑定工具自动删掉了Compose方法,创建Transforms/Metadata.xml文件自定义绑定规则,强制保留目标方法:

<metadata>
  <!-- 先移除自动生成的错误节点 -->
  <remove-node path="/api/package[@name='你的库包名']/class[@name='你的Compose类名']/method[@name='TestComposable']" />
  <!-- 重新添加正确的方法定义 -->
  <add-node path="/api/package[@name='你的库包名']/class[@name='你的Compose类名']">
    <method name="TestComposable" return="void">
      <parameter name="$composer" type="androidx.compose.runtime.Composer" />
      <parameter name="$changed" type="int" />
    </method>
  </add-node>
</metadata>

5. 清理重建

  • 删除绑定库和MAUI项目的bin、obj目录
  • 重启Visual Studio
  • 先单独构建绑定库,再构建MAUI应用

额外提醒

MAUI对Compose绑定的支持不算完全完善,尽量避免在你的Compose库中使用自定义编译器插件、复杂的Compose高阶特性,否则容易出现绑定失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:04:54