问题标签 [java-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
595 浏览

java - Java 8 的 JavaBeans ActiveX 桥接器?

曾经有一个JavaBeans ActiveX 桥,但 AFAIK 在 Java 8 下不再支持它。

我想从 Excel 调用我的 JavaBeans,那么 Java 8 的方法是什么?

问题是我有一些旧版 JavaBean 打包在我从 Excel VBA 使用的 dll 中。我没有这个 bean 的源代码。但我仍然想将它与 Java 8/9 一起使用。这可能吗?

0 投票
0 回答
121 浏览

c# - 绑定到 .aar 不会创建包含的类,只会创建接口

我有一个非常基本的 java 模块,它包含两个接口(IOrder、IOrderItem)和两个实现这些接口的类(Order、OrderItem)。

在 VS2017 中创建 xamarin 绑定库后,我只看到两个接口。

检查 api.xml 显示这两个类都被识别,我什至在我的项目的 obj\Debug\generated\src 文件夹中看到它们生成的类。

为什么这些类没有进入我的对象浏览器?我错过了什么将这些生成的文件链接到项目本身?

0 投票
1 回答
545 浏览

java - Xamarin.Android 绑定调用 java 对象方法

我通过名为 Xamarin.GradleBinding 的 Visual Studio 扩展创建了 java 绑定库。我添加了ru.rambler.android:swipe-layout:1.0.14package 并在使用它SwipeLayout时,一切正常。但不幸的是,它没有创建相应的 C# 类或类似的东西。我尝试手动添加包,但仍然没有。

我检查了GitHub 上的源代码SwipeLayout有一个没有参数的public void方法:reset()

我尝试从 c# 中调用此方法JNIEnv

类型和方法已成功找到但正在调用

此方法使应用程序崩溃,它甚至不会进入 catch 块。

Tt 必须是_swiper.Handle第一个参数的原因。 _swiperfield 是类型,ViewGroup因为SwipeLayout它是从ViewGroup. 我找不到如何获取视图指针以传递该方法。

在调试时,当我调查时_swiper,它似乎是正确的实例SwipeLayout

在此处输入图像描述

0 投票
0 回答
405 浏览

c# - Xamarin 绑定问题:找不到符号

我正在尝试绑定本机 Java 库。此 jar 文件以前已集成到绑定项目中,我正在尝试使用最新版本更新 jar。

我在构建过程中遇到以下问题:

我可以在以下位置看到这些方法cemListener.java

我可以看到它DeferredAuthorizationReason存在并且具有可从我的 C# 文件访问的值。好像绑定成功了?我认为问题是由于某种原因cemListener.java看不到。DeferredAuthorizationReason

我认为我需要对 Metadata.xml 进行更改,但我不确定需要什么,因为问题似乎出在 java 文件中而不是 C# 中。

这是 api.xml 中的类:

我可以看到其他似乎没有引起问题的枚举,除了这个文件之外,我看不出这个有什么不同static="false"

我已经尝试在 Metadata.xml 中对此进行修改,但似乎没有效果:

0 投票
1 回答
1415 浏览

xamarin - Xamarin Android Java 绑定:缺少类 (XMLReader)

当我在 Xamarin.Android 项目中并使用 Java 绑定库时,我几乎总是会遇到一些警告。我收到以下警告:

我的第一个想法是它缺少 System.XML.XMLReader NuGet 依赖项,但它没有任何意义。我添加了依赖项,但没有工作。

后来,查看代码(例如android.content.Intent),我意识到在解析所需的类时不知何故出错了。它不是 System.XML .Net 框架之一,而是来自 Android 框架的 XMLReader 类。

关于将绑定过程指向正确方向的任何想法,明确地告诉选择什么类?一些 metadata.xml 规则?谢谢

编辑:我正在尝试这个:

可以在这里看到,但解析器没有找到任何东西,即使使用了不太细粒度的查询:

0 投票
0 回答
44 浏览

xamarin - Xamarin Java 库绑定问题

我想在我的项目中使用agency tango materialintroscreen库。Xamarin.Android

我创建了一个 Xamarin Android 绑定项目,将ARR文件复制到Jars Folder并将 Build Action 设置为LibraryProjectZip.

然后我在我的主要 Xamarin.Android 项目中引用该项目。通常我可以访问agency.tango.materialintroscreen但有命名空间不存在的错误。

我尝试使用jetBrains dotpeek我看到dll的所有类都创建得很好。我与 3 库 Visual Studio 错误列表有相同的错误

对象浏览器

0 投票
0 回答
345 浏览

android - 如何在 Xamarin 的 Android 绑定项目中绑定通用 Java 类?

我必须在 Xamarin 的 Android 绑定项目中绑定通用 Java 类。下面是我添加的普通类绑定的代码metadata.xml

等效的 java 类和方法被绑定如下。

如果我尝试将此回调类绑定为普通类,addBuilding则方法不可见,因为它将泛型类作为参数。

请求帮助我找到一种方法来处理metadata.xml.

0 投票
1 回答
303 浏览

c# - xamarin android 绑定将类 final int 字段更改为 ac# 枚举

我一直在为第三方 Android JAR 编写一个 Xamaring 绑定库,并且对如何将类中的 int 字段转换为枚举感到困惑。

我已经使用 EnumFields.xml 为 int 字段创建了一个 C# 枚举,并且还成功地从使用 EnumMethods.xml 的方法中返回,但是在一个地方返回了一个类,它公开了一个应该是我的枚举的 int 字段。

我试过了:

在 EnumMethods 但无法让它工作,然后我尝试了

在 Metadata.xml 中,但也无法将其映射。我可以更改其属性名称,但不能更改其返回类型。

在 JavaDoc 中,它说明了以下内容:

公共最终 int 错误

在我生成的 C# 中,我得到:

我错过了什么明显的东西吗?

0 投票
0 回答
116 浏览

xamarin.android - 有没有办法绑定 2 个具有相同命名空间、相同函数名但功能不同的 java 库

我正在创建一个 android 应用程序来读取特定制造商的 BLE 设备。我有 2 个 jar 库,用于 2 个不同的 BLE 设备,但是由于这两个设备的制造商相同,我不知道为什么,但他们为两个库保持了相同的命名空间。除了函数的名称之外,它们的名称相同,但它们的行为不同。所以问题是当我同时使用这两个库时,无论是在同一个android java绑定项目中还是在不同的项目中,它们都会发生冲突。有没有办法强制库通过不同的命名空间访问?

0 投票
1 回答
270 浏览

java - '警告 BG8102:X 类具有未知的基本类型 Y' 警告,同时在 xamarin 中绑定 java 代码

我目前正在尝试获取用 java(.jar 文件)编写的 SDK,以与 Xamarin.Android 一起使用。因此,我尝试按照官方教程(https://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/binding-a-jar)绑定 .jar 文件. 如何摆脱警告“警告 BG8102:X 类具有未知的基本类型 Y。” 没有源代码?

不幸的是,我没有取得那么大的成功,因为只有一小部分类可以正确绑定。我查看了控制台,看到很多类似的警告“警告 BG8102:Wangpos.Sdk4.Libbasebinder.IDCard 类具有未知的基本类型 wangpos.sdk4.libbasebinder.a.”。所有其他警告大多相同 - 只有类不同(基本类型保持不变)。我尝试过反汇编 .jar SDK 文件,但是基类“a”似乎并没有什么特别之处。除了 java 原生的,没有额外的参考。

反汇编类的简短片段。

生成的api.xml文件对应部分:

没有为此类生成相应的 .cs 文件。

更新:链接到 .jar SDK 文件,供大家尝试:https ://www.dropbox.com/sh/msy3pa65x6u1ou7/AACb0rZBo3u3g33-XuRA7U6Ca?dl=0

最后,由于 .jar 绑定,预期结果将是 C# 中完整或几乎完整的 SDK 类可用性。

由于我是 xamarin 中 java 绑定的新手,因此非常感谢任何提示。