java - MethodHandle.invoke 和 MethodHandle.invokeExact 仅支持从 Android O (--min-api 26) 开始
问题描述
我正在android中开发一个应用程序,我想在其中使用热敏打印机在收据上打印图像。
为了完成这个任务,我escpos-coffee
在我的应用程序中添加了这个包。
要打印它正在使用
import java.imageio.BufferedImage
的图像,要读取它正在使用的图像,这ImageIO.read(file)
两个类都位于rt.jar
我在项目中外部添加的库中。
但是当我尝试构建它时,它会引发错误:
错误:仅从 Android O 开始支持 MethodHandle.invoke 和 MethodHandle.invokeExact (--min-api 26)
在此之前我的 sdk 版本已更改,然后将 min sdk 更改为 5.1 和(目标并将 skd 版本编译为 7.0)然后它开始抛出。
任何详细的帮助将不胜感激。
谢谢你。
解决方案
您需要使用 SNAPSHOT 版本 com.github.anastaciocintra:escpos-coffee:4.0.0-SNAPSHOT
(快照尚未...)
然后,实现 CoffeImage 接口:(CoffeeImageAndroidImpl.java)
import android.graphics.Bitmap;
import com.github.anastaciocintra.escpos.image.CoffeeImage;
public class CoffeeImageAndroidImpl implements CoffeeImage {
private Bitmap bitmap;
public CoffeeImageAndroidImpl(Bitmap bitmap) {
this.bitmap = bitmap;
}
@Override
public int getWidth() {
return bitmap.getWidth();
}
@Override
public int getHeight() {
return bitmap.getHeight();
}
@Override
public CoffeeImage getSubimage(int x, int y, int w, int h) {
return new CoffeeImageAndroidImpl(bitmap.createBitmap(this.bitmap,x,y,w,h));
}
@Override
public int getRGB(int x, int y) {
return bitmap.getPixel(x, y);
}
}
和...打印这样的图像:
...
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.dog, options);
RasterBitImageWrapper imageWrapper = new RasterBitImageWrapper();
escpos.writeLF("BitonalOrderedDither()");
// using ordered dither for dithering algorithm with default values
Bitonal algorithm = new BitonalOrderedDither();
EscPosImage escposImage = new EscPosImage(new CoffeeImageAndroidImpl(bitmap), algorithm);
escpos.write(imageWrapper, escposImage);
escpos.feed(5).cut(EscPos.CutMode.FULL);
...
阅读更多内容并获取 github 示例:https ://github.com/anastaciocintra/escpos-coffee/issues/9#issuecomment-541343942
推荐阅读
- typescript - 打字稿 - 参数元组的连接并集
- amazon-web-services - 查询放大graphql多对多关系
- python - 使用循环信号创建伪循环信号
- python - 无法使用 WSL Python 解释器在 PyCharm 中创建虚拟环境
- java - VLCJ - 在 Eclipse 中播放 rtsp 流视频,但不是在制作可执行 JAR 之后
- swift - 打印存储为 SparseMatrixStructure 的矩阵
- javascript - mongodb中的搜索参数
- java - Android Studio Alammanager 处于省电模式
- vue.js - Vue/Vuetify:显示/隐藏父组件的对话框。Esc 键不起作用
- java - 当我尝试在基类方法中调用子类方法时,为什么会出现错误?