问题描述
我正在尝试使用 NexGo SDK 使用 NexGo p200 打印收据 但是当我运行该应用程序时,出现了下图所示的错误。
代码是:
public void print() {
try {
deviceEngine =APIProxy.getDeviceEngine(MainActivity.this);
Log.e("device",deviceEngine.toString());
}catch (RuntimeException e){
e.printstacktrace();
}
printer = deviceEngine.getPrinter();
printer.setTypeface(Typeface.DEFAULT);
printer.initPrinter();
printer.setTypeface(Typeface.DEFAULT);
printer.setLetterSpacing(5);
printer.appendPrnStr(getString(R.string.print_merchantname),24,AlignEnum.LEFT,false);
printer.appendPrnStr(getString(R.string.print_merchantno),false);
printer.appendPrnStr(getString(R.string.print_terminalno),getString(R.string.print_operator),false);
printer.appendPrnStr(getString(R.string.print_issurebank),false);
printer.appendPrnStr(getString(R.string.print_shoudan),false);
printer.appendPrnStr(getString(R.string.print_expiredate),false);
printer.appendPrnStr(getString(R.string.cardnum),false);
printer.appendPrnStr(getString(R.string.print_cardinfo),false);
printer.appendPrnStr(getString(R.string.print_Tradetype),false);
printer.appendPrnStr(getString(R.string.print_batchno),false);
printer.appendPrnStr(getString(R.string.print_voucher),getString(R.string.print_authorcode),false);
printer.appendPrnStr(getString(R.string.print_refrenceno),false);
printer.appendPrnStr(getString(R.string.print_Tradedate),false);
printer.appendPrnStr(getString(R.string.print_amount),false);
printer.appendPrnStr(getString(R.string.money),false);
printer.appendPrnStr(getString(R.string.print_beizhu),false);
printer.appendPrnStr(getString(R.string.print_originalvoucher),false);
printer.appendPrnStr(getString(R.string.print_addinfo),false);
printer.appendBarcode(getString(R.string.print_barcode),50,2,BarcodeFormatEnum.CODE_128,AlignEnum.CENTER);
printer.appendQRcode(getString(R.string.print_qrcode),200,AlignEnum.CENTER);
printer.appendPrnStr("---------------------------",false);
printer.appendPrnStr(getString(R.string.print_cardhold),false);
printer.appendPrnStr("\n",false);
printer.appendPrnStr("---------------------------",false);
printer.appendPrnStr(getString(R.string.print_cardhold_ensure),false);
printer.appendPrnStr(getString(R.string.print_merchant_dan),AlignEnum.RIGHT,false);
printer.startPrint(false,new OnPrintListener() {
@Override
public void onPrintResult(final int retCode) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,retCode + "",Toast.LENGTH_SHORT).show();
}
});
}
});
}
解决方法
可能与 java.library.path
系统属性不正确有关。您可以尝试通过传递 -Djava.library.path=<your-directory-containing-the-so-file>
参数来修复它。