Xamarin.Forms Android绑定库错误

Eas*_*all 7 binding xamarin.android xamarin xamarin.forms

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

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

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

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

1> BINDINGSGENERATOR:警告BG8701:托管类型Com.TagOp中方法GetParams中的返回类型com.MyParams无效.

1> BINDINGSGENERATOR:警告BG8801:托管类型Com.TagOp中方法TagOps中的参数类型com.MyParams无效.

1> BINDINGSGENERATOR:警告BG8801:托管类型Com.TagOp中方法TagOps中的参数类型com.MyParams无效.

1> BINDINGSGENERATOR:警告BG8801:托管类型Com.Tag中方法TagPage中的参数类型com.MyParams无效.

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

自从为Visual Studio 2017更新Xamarin以来会出现此问题.

你有任何线索来解决这个问题吗?提前致谢.

Mar*_*ler 2

HashMap和LinkedHashMap是未知的……因此基于它们的任何内容都不能被实例化。

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

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

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