Xamarin.Forms Android Binding library error



我目前正面临有关Xamarin Forms Android Bindings库的问题。 我在绑定项目中放置了一个.jar库,但我意识到该库未完全加载。

当我构建绑定项目时,它可以正确编译,但我的输出中仍然有一些警告。

1>BINDINGSGENERATOR : 警告 BG8102: 类 Java.Util.LinkedHashMap 具有未知的基本类型 Java.Util.HashMap。

1>BINDINGSGENERATOR : 警告 BG8103: 类 Com.MyParams 具有无效的基本类型 java.util.LinkedHashMap。

1>绑定生成器 : 警告 BG8701: 无效的返回类型 com.MyParams in method GetParams in managed type Com.TagOp.

1>绑定生成器:警告BG8801:参数类型无效。MyParams in method TagOps in managed type Com.TagOp.

1>绑定生成器:警告BG8801:参数类型无效。MyParams in method TagOps in managed type Com.TagOp.

1>绑定生成器:警告BG8801:参数类型无效。MyParams in Method TagPage in managed type Com.Tag.

在我的 Android 代码中,我无法使用Com.MyParams类,因为它没有加载。

自 Xamarin for Visual Studio 2017 更新以来,会出现此问题。

你有什么线索可以解决这个问题吗?提前谢谢。

HashMap和 LinkedHashMap 未知...因此,不能实例化任何基于它们的内容。

当数据绑定不知道类时,它要么缺少注释,要么不扩展类BaseObservable和/或具有错误的get/set方法名称(需要与字段名称匹配);需要满足很多条件,具体取决于是否需要单向或双向数据绑定。查看生成的代码通常会提供必须更改的线索。

但是,直接对 JAR 类进行数据绑定甚至是不可能的,除非将所需的注释添加到其中,然后构建 JAR,以便使它们可绑定。Android 数据绑定库和 Xamarin Java 绑定元数据的文档对此进行了解释(从头开始复制所需的 Java 类,完全可绑定,可能是最快进的方法,如果不是唯一的方法)。

人们只能通过替换要绑定到 GUI 的类来解决这个问题 - 这可以通过相当简单的类来实现,或者在使用 Java 反编译器时(以便知道要使用的字段)。

最新更新