当前位置: 首页 > 知识库问答 >
问题:

兄弟 SDK 调用打印图像导致 JNI 在应用程序中检测到错误: GetStringUTFChars 收到空 jstring

孔厉刚
2023-03-14

目前正在为标签打印机使用Brother SDK,当我调用Asset Manager时,位图出现了,但当它被解析为打印图像时,它崩溃了。

if (myPrinter.startCommunication()) {
AssetManager assetManager = getAssets();
          Bitmap bitmap = null;
          try{
              bitmap = BitmapFactory.decodeStream(new BufferedInputStream(assetManager.open("meme.bmp")));
             }catch(Exception e){
               e.printStackTrace();
             }
          PrinterStatus result = myPrinter.printImage(bitmap);
       if (result.errorCode != ErrorCode.ERROR_NONE) {
         Log.d("TAG", "ERROR - " + result.errorCode);
       }
         myPrinter.endCommunication();
}

堆栈读数

调试器打印输出,带图像预览。

共有2个答案

西门飞翮
2023-03-14

我也有这个问题。你确定了android.permission吗。授予WRITE_EXTERNAL_STORAGE权限。在清单文件中有这个还不够,但是通过向用户请求许可,这个特定的错误就消失了。

归功于SO上的这篇文章

吕修伟
2023-03-14

对于任何人来说,即使他们确保获得了写入权限,也会被卡住,这与b-PAC试图创建的工作路径有关。

默认路径是:< code >/storage/emulated/0/com . brother . p touch . SDK/template

只需在< code>PrinterInfo对象中定义自己的路径。如下设置< code>workPath变量:

PrinterInfo mPrintSettings = mPrinter.getPrinterInfo();
mPrintSettings.workPath = "your/custom/work/path";

文件上说,如果你这样做,你甚至不需要许可。但无论如何我都会保留它。

 类似资料: