警告BG8102:有未知的基本类型android.app.IntentService.(BG8102).绑定Java a

本文关键字:BG8102 IntentService app 绑定 Java android 类型 未知 警告 | 更新日期: 2023-09-27 18:10:19

我在Xamarin上做BLE项目。目前我正在研究无线设备固件升级(OTA-DFU)部分。我计划在Xamarin上使用原生java Android DFU库。

我遵循关于将Java库绑定到Xamarin的文档。

最后编译器显示Warning BG8102: Class NO.Nordicsemi.Android.Dfu.DfuBaseService has unknown base type android.app.IntentService. (BG8102) (AndroidDUFLibrary)。我可以在Xamarin中引用转换后的java库。但是缺少一些类,我不能引用它。

你能让我知道我该如何修复缺失的类问题吗?

警告BG8102:有未知的基本类型android.app.IntentService.(BG8102).绑定Java a

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

这是一种丑陋的解决方案。我们必须在项目中逐个手动添加缺失类的源代码文件。最好更改编译器中的一些配置,以自动修复丢失的类问题。

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

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

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