如何消除 Xamarin Android 项目中重复的 jni 签名?

问题描述

我有一个仅面向 Android 的 Xamarin Forms 项目。

对于不同的 RFID 手持设备制造商,我有两个独立的 API,采用 JAR 的形式。

我正在尝试将这两个 API 包含在我可以使用 API 选择器的同一个 Android 项目中。

我在一个单独的 Java Bindings 项目中拥有每一个

这两个 API 都包含霍尼韦尔条形码库,它们共享一个通用的 jni 签名。

我无法在添加了两个库的情况下构建 Android 项目,因为出现错误java.lang.IllegalArgumentException:已添加:Lcom/hsm/barcode/DecodeOptions

我尝试在其中一个库的 Metadata.xml 中添加“remove-node”。

<remove-node path="/api/package[@name='com.hsm.barcode']/class[@name='DecodeOptions']"/>

当我重建时,我可以看到省略了 obj/debug/generated 目录的类文件

enter image description here

enter image description here

jni 引用仍然出现在 api.xml 文件中,这反过来仍然导致 Android 构建错误

<class abstract="false" deprecated="not deprecated" extends="java.lang.Object" extends-generic-aware="java.lang.Object" jni-extends="Ljava/lang/Object;" final="false" name="DecodeOptions" static="false" visibility="public" jni-signature="Lcom/hsm/barcode/DecodeOptions;">

在我承认我不能将这两个库包含在同一个项目中之前,我想我会看看是否有人有建议。

T.I.A.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)