Epson ePOS SDK for Android (Xamarin) 缺少常量

2023-12-07

我们正在尝试升级epson的SDK,该SDK已被弃用很长时间了。

我们使用旧的 ePOS-Print SDK (com.epson.eposprint) 软件包,但开始遇到问题,因此我们正确地决定迁移到当前的软件包,即适用于 Android 的 Epson ePOS SDK (com.epson.epos2)。

我们正在使用 Visual Studio Xamarin。

我们按照SDK中包含的迁移文档进行操作。替换了大部分代码。但是,似乎 Xamarin 的 java 绑定有问题,或者缺少某些内容,因为几乎 90% 的枚举值不可用。如果没有枚举值,几乎不可能正确调用方法...例如,我们确实有一些可用的枚举(如 BatteryLevelX、TMxx、Pattern*),但仅此而已。

我们使用的是安卓8.0

我们的 javabinding 项目的配置如下:

--JarLibrary
----Jars
-------ePOS2.jar
-------ePOSEasySelect.jar
----libs
------armeabi
--------libepos2.so
--------libeposeasyselect.so
------armeabi-v7a
--------libepos2.so
--------libeposeasyselect.so

项目属性:

Android 类解析器:jar2xml Android 代码生成目标:XAJavaInterop1

有什么想法吗?

EDIT :解决方案是确保 SDK 中没有可见性关键字的所有对象都通过 Metadata.xml 转换文件进行修复,如下所示:

<!-- On enlève l'ancienne classe du package qui ne sert plus à rien, juste pour la migration -->
<remove-node path="/api/package[starts-with(@name, 'com.epson.epsonio')]" />

<!-- Need to change the visibility of many ommited classes visibility in jar epos -->
<attr path="/api/package[@name='com.epson.eposdevice']/class[@name='NativeDevice']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.commbox']/class[@name='NativeCommBox']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.commbox']/class[@name='NativeCommBoxManager']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.keyboard']/class[@name='NativeKeyboard']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.printer']/class[@name='NativePrinter']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.scanner']/class[@name='NativeScanner']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.simpleserial']/class[@name='NativeSimpleSerial']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice']/class[@name='DeviceInnerImplement']"
      name="visibility">protected</attr>

<attr path="/api/package[@name='com.epson.eposdevice']/class[@name='NativeDevice']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.epos2.printer']/class[@name='CommonPrinter']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.epos2.printer']/class[@name='LogoKeyCode']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.epos2']/class[@name='NativeInitializer']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.epos2']/class[@name='OutputLog']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.display']/class[@name='NativeDisplay']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice']/class[@name='Device.DeleteDeviceCallbackAdapter']"
      name="visibility">protected</attr>

EDIT :解决方案是确保 SDK 中没有可见性关键字的所有对象都通过 Metadata.xml 转换文件进行修复,如下所示:

<!-- On enlève l'ancienne classe du package qui ne sert plus à rien, juste pour la migration -->
<remove-node path="/api/package[starts-with(@name, 'com.epson.epsonio')]" />

<!-- Need to change the visibility of many ommited classes visibility in jar epos -->
<attr path="/api/package[@name='com.epson.eposdevice']/class[@name='NativeDevice']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.commbox']/class[@name='NativeCommBox']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.commbox']/class[@name='NativeCommBoxManager']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.keyboard']/class[@name='NativeKeyboard']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.printer']/class[@name='NativePrinter']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.scanner']/class[@name='NativeScanner']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.simpleserial']/class[@name='NativeSimpleSerial']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice']/class[@name='DeviceInnerImplement']"
      name="visibility">protected</attr>

<attr path="/api/package[@name='com.epson.eposdevice']/class[@name='NativeDevice']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.epos2.printer']/class[@name='CommonPrinter']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.epos2.printer']/class[@name='LogoKeyCode']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.epos2']/class[@name='NativeInitializer']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.epos2']/class[@name='OutputLog']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice.display']/class[@name='NativeDisplay']"
      name="visibility">public</attr>

<attr path="/api/package[@name='com.epson.eposdevice']/class[@name='Device.DeleteDeviceCallbackAdapter']"
      name="visibility">protected</attr>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Epson ePOS SDK for Android (Xamarin) 缺少常量 的相关文章

  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • selenium webdriver 中的多个程序执行不起作用

    Selenium WebDriver 中的多个程序执行不起作用 我编写了 1 个 testNG xml 文件和 2 个 java 类 我尝试从 xml 文件运行这两个 java 类 但这不起作用 XML代码
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • java中日期转换dd-MMM-yyyy到dd-MM-yyyy

    在Java中将23 Mar 2011转换为23 03 2011的最简单方法是什么 感谢大家 这似乎解决了这个问题 try Calendar cal Calendar getInstance cal setTime new SimpleDat
  • JFrame Glasspane 也优于 JDialog,但不应该

    我有一个带有 Glasspane 的 JFrame 未装饰 该框架打开一个 JDialog 也未装饰 也有一个 glassPane 并隐藏自身 setVisible false Glasspanes 通过 setGlassPane 设置 对
  • Java字符串查找和替换的最佳方法?

    我正在寻找 Java 中字符串查找和替换的最佳方法 这是一句话 我的名字叫米兰 人们都知道我叫米兰瓦西奇 我想用 Milan Vasic 替换 Milan 弦 但在我已经有 Milan Vasic 的地方 情况不应该是这样 搜索 替换后的结
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 春季MVC。方法参数字段的默认值

    我有一个带有方法测试的简单控制器 RequestMapping produces application json ResponseBody public HttpEntity
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • Java 验证日期为 yyyyMMddHHmmss

    我想在java中验证给定的日期格式为yyyyMMddHHmmss 状况 应符合格式 yyyyMMddHHmmss 它应该验证当前日期 它应该验证与当前小时有 3 小时或 3 小时差异的小时数 如果满足所有三个条件 Java 方法应返回 tr
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException
  • 在没有EOF的情况下停止读取java中的输入

    In 问题 如何停止读取输入 我的程序继续运行 要求更多输入 public static void main String args throws Exception BufferedReader br new BufferedReader
  • Java 可变 BigInteger 类

    我正在使用 BigIntegers 进行计算 该计算使用一个调用 multiply 大约 1000 亿次的循环 并且从 BigInteger 创建新对象使其非常慢 我希望有人编写或找到了 MutableBigInteger 类 我在 jav

随机推荐

  • 从(任意)连续概率分布进行模拟[重复]

    这个问题在这里已经有答案了 例如 对于实数线上定义的归一化概率密度函数 p x 2 pi 1 exp x exp x 这只是一个例子 该解决方案应该适用于我们可以定义的任何连续 PDF R 中是否有一个包可以从发行版进行模拟 我知道 R 的
  • VBA 中表单宽度和高度的单位是什么?

    我正在为 Word 2007 编写 VBA 程序 我创建了一个用户窗体 需要使用脚本调整其大小 我注意到它不是像素 Me Width pixelW form appears about 20 larger than the pixel wi
  • gensim TransformedCorpus数据高效转换为数组

    是否有比下面的逐行方法更直接或更有效的方法将主题概率数据从 gensim interfaces TransformedCorpus 对象获取到 numpy 数组 或者 pandas 数据帧 from gensim import models
  • VBA:写入日志文件的子程序

    我在工作簿中定义了一组宏 我想向用户提供在日志文件中记录与这些宏相关的事件的选项 我通过在 ThisWorkbook 中创建以下内容来启动日志 Public writeLog as Boolean Public logWrite as Ob
  • 使用 Jackson 序列化枚举

    我有一个如下所述的枚举 public enum OrderType UNKNOWN 0 Undefined TYPEA 1 Type A TYPEB 2 Type B TYPEC 3 Type C private Integer id pr
  • 为什么我的文本字段似乎不为零,即使我将该字段留空?我的 if 语句的“else”部分没有被读取

    我正在通过制作一个保存客户数据的应用程序来练习快速编程 该应用程序有几个文本字段 人们应该在其中输入姓名 电子邮件地址 电话号码和购买的产品数量 然后通过 提交 按钮 他们将该信息保存到数据库中 但是 如果其中一个字段为空 则应抛出错误 并
  • Tortoise Git - 拉取导致冲突后丢失提交

    这个问题完美地描述了我们的情况 当 Git 或 TortoiseGit 出现冲突时 正确的提交 推送方式是什么 对于上述问题没有答案 至少没有一个被接受的答案 这似乎是解决方案之一 https stackoverflow com a 121
  • 并发异步/等待与睡眠

    我想知道答案是否为这个相当老的问题about future 仍然适用于更新的语言结构async await 似乎是这样 因为下面的代码打印 hello good bye hello 虽然导游 says futures join 宏使得可以等
  • 如何在winRT中用动画绘制圆弧?

    我是 WinRT 和 Blend 的新手 我需要在 WinRT 应用程序中使用绘图效果绘制数字 1 2 等 要求就像应用程序将绘制数字 任何帮助将非常感激 提前致谢 我认为您需要拼凑几个故事板才能实现这一目标 我真的建议您使用 Blend
  • 模拟器使用 int21h/ah=09h 显示“2000 个字节后未找到错误字节 24h”

    我必须使用汇编来做一个简单的计算器EMU8086 但每次我尝试启动它时EMU8086给出这个错误 INT 21h AH 09h address 170B5 byte 24h not found after 2000 bytes correc
  • 带有选项标签的 CSS - 编辑文本颜色

    用CSS编辑选项标签背后有什么秘密吗 我就是无法解决这个问题
  • URL 中允许的字符

    有谁知道可以在 GET 中使用而无需编码的字符的完整列表 目前我正在使用 A Z a z 和 0 9 但我希望找到完整的列表 我还想知道是否有针对即将添加的中文 阿拉伯语网址的规范发布 显然这将对我的问题产生重大影响 编辑 正如 Jukka
  • 通过 REST 接口托管的 PDF 在 Chrome 88+ 中返回 ERR_BLOCKED_BY_CLIENT

    I am working on a project that uses a Java Backend Application that hosts a PDF over a REST interface Up to Chrome 87 an
  • 通过CSS隐藏特定尺寸的图像?

    在此先感谢您的帮助 我有一个 RSS 我想在我的页面上发布该 RSS 的内容 但该 RSS 来自 WordPress 并且包含用于评论的按钮的图像 问题1 如果我隐藏所有 img 从 RSS 中 我还隐藏了博客中文章中发布的图像 问题2 评
  • 为什么 `Stage#show` 这么慢,可以采取什么措施来加速它

    在 JavaFX 中 第一次显示舞台时Stage show花费很长时间 我不是在谈论加载 FXML 所需的时间 这完全是一个不同的问题 而只是在调用之间所需的时间Stage show和调用返回 以及向用户显示的窗口 我创建了这个示例应用程序
  • SQLite 查询连接日期范围?

    我正在使用 SQLite 假设我有一张桌子sales有两列 date and count 记录我在那一天卖出了多少杯柠檬水 如果我在某一天没有卖出任何柠檬水 我会很沮丧而无法在sales table 我想了解给定日期范围内销售的平均眼镜数量
  • 如何求多边形的垂直距离?

    我现在有 n 个坐标 从中创建了一个多边形 如果该多边形中有一个坐标 那么如何找到点和多边形的垂直距离 coords 45 888106581826065 8 512891340789281 45 89087605100282 8 5113
  • 如何使用 Selenium 和 Python 等待加载元素数量

    假设我正在使用选择器进行选择 img data blabla 我想等待 10 个元素加载完毕 而不仅仅是 1 个 这将如何修改 我正在用索引进行猜测 9 WebDriverWait browser 5 until EC presence o
  • 使用 async/await 时,Task 中的线程池线程会放置什么?

    请考虑以下代码 public static async Task
  • Epson ePOS SDK for Android (Xamarin) 缺少常量

    我们正在尝试升级epson的SDK 该SDK已被弃用很长时间了 我们使用旧的 ePOS Print SDK com epson eposprint 软件包 但开始遇到问题 因此我们正确地决定迁移到当前的软件包 即适用于 Android 的