应用程序找不到“libnexgo_sdkemvjni.so”

问题描述

我正在尝试使用 NexGo SDK 使用 NexGo p200 打印收据 但是当我运行该应用程序时,出现了下图所示的错误

enter image description here

代码是:

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> 参数来修复它。