3

我正在使用 Xamarin.Android 开发 Brother 标签打印机 QL-710W。

我创建了一个 Android 绑定项目并添加了 jar 文件和 .so 文件,如下所示。

我正在使用 Visual Studio。

罐子 >

  1. BrotherPrintLibrary.jar; BuildAction: EmbeddedJar
  2. MobilePrintLib.jar;BuildAction: ReferenceJar

NativeLibraries > armeabi >

  1. libAndrJFPDFEMB.so; BuildAction: EmbeddedNativeLibrary
  2. libcreatedata.so;BuildAction: EmbeddedNativeLibrary

添加 ClassTest.cs

public bool PrintFile(string fileurl, NetPrinter printer)
    {
        Task <bool> printTask = new Task<bool>(() => {
        bool success = true;
            try
            {
                Printer myPrinter = new Printer();
                PrinterInfo myPrinterInfo = new PrinterInfo();
                PrinterStatus status = new PrinterStatus();
                LabelInfo mLabelInfo = new LabelInfo();

                myPrinterInfo.PrinterModel = PrinterInfo.Model.Ql710w;
                myPrinterInfo.IpAddress = printer.IpAddress;
                myPrinterInfo.MacAddress = printer.MacAddress;
                myPrinterInfo.Port = PrinterInfo.PortEnum.Net;
                myPrinterInfo.PrintMode=PrinterInfo.PrintModeEnum.FitToPage;
                myPrinterInfo.PaperSize = PrinterInfo.PaperSizeEnum.Custom;
                myPrinterInfo.Orientation = PrinterInfo.OrientationEnum.Portrait;
                myPrinterInfo.LabelNameIndex = LabelInfo.QL700.W62.Ordinal();
                myPrinterInfo.ScaleValue = 1;

                mLabelInfo.LabelNameIndex = LabelInfo.QL700.ValueOf("W62").Ordinal();
                mLabelInfo.IsAutoCut = true;
                mLabelInfo.IsEndCut = true;

                myPrinter.SetPrinterInfo(myPrinterInfo);
                myPrinter.SetLabelInfo(mLabelInfo);

                myPrinter.StartCommunication();
                status = myPrinter.PrintFile(fileurl);
                if (status.ErrorCode != PrinterInfo.ErrorCode.ErrorNone)
                    success = false;
                myPrinter.EndCommunication();
            }catch(Exception ex)
            {
                Console.WriteLine("ERROR : {0}",ex.Message);
                success = false;
            }
            return success;
        });


        printTask.Start();

        var isSuccess = printTask.Result;

        return isSuccess;
    }

我正在从网络成功获取打印机列表。但是当我调用上述方法时,它在myPrinter.SetPrinterInfo(myPrinterInfo); 处出现异常;作为“无法从加载程序 dalvik.system.PathClassLoader[DexPathList[[zip file \”/data/app/PocAndroidArchieve.PocAndroidArchieve-2.apk\”] 加载 createdata,nativeLibraryDirectories=[/data/app-lib/PocAndroidArchieve. PocAndroidArchieve-2、/vendor/lib、/system/lib]]]:findLibrary 返回 null"

如果有人知道使用 jar 和相关的 .so 文件,请建议我。

提前致谢。

4

0 回答 0