JNI在Brother SDK

时间:2017-08-10 20:54:59

标签: java android printing android-ndk brother-bpac

我正在尝试在我的应用中使用Brother SDK打印图像。

这是我的代码:

       `myPrinterInfo = myPrinter.getPrinterInfo();
        myPrinterInfo.printerModel = PrinterInfo.Model.QL_810W;
        myPrinterInfo.port = PrinterInfo.Port.NET;
        myPrinterInfo.printMode = PrinterInfo.PrintMode.FIT_TO_PAGE;
        myPrinterInfo.paperSize = PrinterInfo.PaperSize.CUSTOM;
        myPrinterInfo.labelNameIndex = 5;
        myPrinterInfo.isAutoCut = false;
        myPrinterInfo.isCutAtEnd = false;
        myPrinterInfo.orientation = PrinterInfo.Orientation.PORTRAIT;
        myPrinterInfo.valign = PrinterInfo.VAlign.TOP;
        myPrinterInfo.align = PrinterInfo.Align.LEFT;
        myPrinterInfo.halftone = PrinterInfo.Halftone.THRESHOLD;
        myPrinterInfo.ipAddress = "192.168.1.146";
        myPrinterInfo.thresholdingValue = 127;
        myPrinterInfo.pjCarbon = false;
        myPrinterInfo.pjDensity = 5;
        myPrinterInfo.pjFeedMode = PrinterInfo.PjFeedMode.PJ_FEED_MODE_FIXEDPAGE;
        myPrinterInfo.pjPaperKind = PJ_CUT_PAPER;
        myPrinterInfo.rollPrinterCase = PrinterInfo.PjRollCase.PJ_ROLLCASE_OFF;
        myPrinterInfo.paperPosition = PrinterInfo.Align.CENTER;
        myPrinterInfo.numberOfCopies = 1;

我正在使用62mmx100mm纸卷,我收到此错误消息:

  

应用程序中的JNI DETECTED ERROR:GetStringUTFChars收到NULL jstring   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:致电GetStringUTFChars   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:from boolean com.brother.ptouch.sdk.JNIWrapper.writeByteInFile(int [],int,java.lang.String,boolean )   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:&#34; AsyncTask#1&#34; prio = 5 tid = 10 Runnable   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:|基团=&#34;主&#34; sCount = 0 dsCount = 0 obj = 0x12c99460 self = 0xe9594500   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:| sysTid = 31584 nice = 10 cgrp = bg_non_interactive sched = 0/0 handle = 0xe0b65930   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:| state = R schedstat =(80462688 29252686 258)utm = 5 stm = 3 core = 2 HZ = 100   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:| stack = 0xe0a63000-0xe0a65000 stackSize = 1038KB   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:|持有互斥锁=&#34; mutator lock&#34;(共享持有)   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:native:#00 pc 0035adcf /system/lib/libart.so(__ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiPKcPNS_9ArtMethodEPv + 126)   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:native:#01 pc 0033bdeb /system/lib/libart.so(__ZNK3art6Thread4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE + 138)   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:native:#02 pc 0024ef71 /system/lib/libart.so(< em> ZN3art9JavaVMExt8JniAbortEPKcS2 +900)   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:native:#03 pc 0024f607 /system/lib/libart.so(__ZN3art9JavaVMExt9JniAbortVEPKcS2_St9__va_list + 54)   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:native:#04 pc 000fbe5d /system/lib/libart.so(__ZN3art11ScopedCheck6AbortFEPKcz + 28)   08-10 17:33:18.882 31333-31584 / br.com.squarebits.brothertest E / art:native:#05 pc 001003b9 /system/lib/libart.so(__ZN3art11ScopedCheck5CheckERNS_18ScopedObjectAccessEbPKcPNS_12JniValueTypeE.constprop.95 + 2676)   08-10 17:33:18.883 31333-31584 / br.com.squarebits.brothertest E / art:native:#06 pc 00108cd5 /system/lib/libart.so(__ZN3art8CheckJNI17GetStringUTFCharsEP7_JNIEnvP8_jstringPh + 376)

如果有人知道如何修复它,请帮助我:(

1 个答案:

答案 0 :(得分:2)

我今天遇到了类似的问题,但事实证明未授予android.permission.WRITE_EXTERNAL_STORAGE权限。如果您正在运行Android 6或更高版本,请检查run time permissions是否要写入外部存储。在清单中声明权限是不够的。兄弟文档在他们manual的末尾暗示了这一点。

  

8.3。 Android 6兼容性自Android 6.0起,用户可以在安装后更改应用程序的权限。许可   必须授予访问Android外部存储才能使用此权限   应用