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

含Kotlin/Java接口的AAR文件绑定MAUI Android库失败求助

解决MAUI Android绑定库中Kotlin接口实现类的包路径错误问题

核心问题原因

绑定Kotlin/Java的AAR文件时,MAUI绑定工具会自动生成接口实现类(如IMauiTestListenerImplementor),默认会将其置于mono/com/app/mauitestlib这类包含mono前缀的命名空间下,导致引用NuGet包的项目无法识别原Java包路径。

具体解决方案

1. 通过Metadata.xml修正实现类的命名空间

在绑定库项目的Transforms文件夹下找到Metadata.xml(无则新建),添加以下配置,将生成的实现类重定向到你指定的命名空间:

<!-- 替换YourDesiredNamespace为你的绑定库目标命名空间 -->
<attr path="/api/package[@name='com.app.mauitestlib']/interface[@name='MauiTestListener']/implementor" name="managedName">YourDesiredNamespace.IMauiTestListenerImplementor</attr>

该配置会修改绑定工具生成的实现类的命名空间,彻底移除mono前缀的路径。

2. 确认绑定库项目的命名空间配置

打开绑定库的.csproj文件,确保RootNamespace和AssemblyName与你期望的命名空间一致:

<RootNamespace>YourDesiredNamespace</RootNamespace>
<AssemblyName>YourDesiredNamespace</AssemblyName>

避免项目本身的命名空间配置混乱导致类路径错误。

3. 清理缓存并重新生成NuGet包

发布前执行以下操作,确保旧的错误编译产物不会被打包:

  • 清理项目:dotnet clean
  • 构建Release版本:dotnet build -c Release
  • 打包NuGet:dotnet pack -c Release

4. 验证生成的类路径

使用ILSpy或类似工具打开绑定库生成的DLL,检查IMauiTestListenerImplementor的命名空间是否已修正为你指定的路径,确认无误后再发布NuGet包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:44:59