警告 BG8102:具有未知的基类型 android.app.IntentService。 (BG8102)。将 Java android 库绑定到 Xamarin 时

Warning BG8102: has unknown base type android.app.IntentService. (BG8102). When Binding a Java android Library to Xamarin

我正在 Xamarin 上从事 BLE 项目。目前我正在研究无线设备固件升级 (OTA-DFU) 部分。我打算在 Xamarin 上使用 native java Android DFU Library

我正在关注documentation on binding Java library to Xamarin

最后编译器显示Warning BG8102: Class NO.Nordicsemi.Android.Dfu.DfuBaseService has unknown base type android.app.IntentService. (BG8102) (AndroidDUFLibrary)。我能够在 Xamarin 中引用转换后的 java 库。但是有些 class 丢失了,我无法引用它。

能否告诉我如何解决缺失的 class 问题?

我找到了这个 。当我手动将 IntentService 源代码添加到我的项目(创建新的 IntentService 文件并粘贴 IntentService 源代码)并制作自定义包名称时,丢失的 class 问题已得到修复在 IntentService 源代码中(例如 com.mynewpackage)。然后我将项目中的 IntentService 替换为 com.mynewpackage.IntentService

这是一种丑陋的解决方案。工程中缺少的classes,我们得一个一个手动添加源码文件。最好更改编译器中的一些配置以自动修复丢失的 class 问题。

我知道这有点旧,但如果其他人正在搜索这个,我找到的另一个解决方案是通过修改 Metadata.xml 文件来简单地引用 IntentService 的 Xamarin 组件。

<attr path="api/package[@name='The.Package.Here']/class[@name='TheClassHere']" name="extends">mono.android.app.Intentservice</attr>

这样就不需要像之前发布的解决方案那样手动添加源代码了。