繁体   English   中英

POS应用程序的打印机方法调用在发布和调试环境中的行为有所不同

[英]Printer method calls for a POS app behave differently for release and debug environment

我一直困扰这个问题近一个星期了。 我面临的问题是,当我将应用程序设置为调试模式时,打印机功能运行良好。 它们返回正确的响应,并且示例文本是从POS具有的热敏打印机打印的。

但是,当我将应用程序切换到发布模式时,事情开始会有所不同。 为了让您对正在发生的事情有一个了解,这里是正确的方法调用和响应。 您可以看到发送到OS的请求是正确的,返回值也正确。

09-06 21:22:04.058 357-357/? D/LibPrinterService: PrinterService getStatus...
09-06 21:22:04.072 357-357/? D/LibPrinterService: PrinterService getStatus,status=0
09-06 21:22:04.072 6412-6432/com.company.newpos D/PAYSDK: [+] Print Status: 0
09-06 21:22:04.072 357-466/? D/LibPrinterService: PrinterService getMaxTemperature...
09-06 21:22:04.074 357-466/? D/LibPrinterService: PrinterService getMaxTemperature,max=70
09-06 21:22:04.074 6412-6432/com.company.newpos D/PAYSDK: [+] Print MaxTemp: 70
09-06 21:22:04.074 357-5733/? D/LibPrinterService: PrinterService getWidth...
09-06 21:22:04.076 6412-6432/com.company.newpos D/PAYSDK: [+] Print Width: 384
09-06 21:22:04.077 357-357/? D/LibPrinterService: PrinterService getTemperature...
09-06 21:22:04.082 6412-6432/com.company.newpos D/PAYSDK: [+] Print Temp: 32

那是它应该工作的正确方式。 现在,当我切换到释放模式时。 方法的行为方式不同。 getStatus()方法使PrinterService返回当前温度( getTemperature() ), getMaxTemperature()返回状态( getStatus() )。 结果,打印机模块都被弄乱了,打印机无法工作。

起初,我认为这是一个proguard映射问题(可能仍然存在),但是即使禁用proguard和minify也是如此。

谁能帮助我或让我对这里可能发生的事情有所了解?

谢谢

尝试增加一些连接延迟。

 new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            // put your function here.
        }
    }, 2000);

我后来能够解决这个问题。 事实证明,proguard配置并未排除某些类。

因此,下次您的应用在发行模式和调试模式之间的行为完全不同时,请首先检查您的proguard配置。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM