Java 使用Cups4j在android中打印到IPP打印机时引发错误
我正在尝试使用android的Cups4j打印到安装在linux机器上的IPP打印机。这是代码,我或多或少只是复制了他们在github页面上写的内容Java 使用Cups4j在android中打印到IPP打印机时引发错误,java,android,cups4j,Java,Android,Cups4j,我正在尝试使用android的Cups4j打印到安装在linux机器上的IPP打印机。这是代码,我或多或少只是复制了他们在github页面上写的内容 ByteArrayOutputStream os = stvoriRacun(narudzba, djelatnik, brStola); try { CupsClient cupsClient = new CupsClient("192.168.68.180", 631); URL printerURL = new URL("ht
ByteArrayOutputStream os = stvoriRacun(narudzba, djelatnik, brStola);
try {
CupsClient cupsClient = new CupsClient("192.168.68.180", 631);
URL printerURL = new URL("http://192.168.68.180:631/printers/bixolonIPP");
CupsPrinter cupsPrinter = cupsClient.getPrinter(printerURL);
Map<String, String> attributes = new HashMap<>();
attributes.put("compression", "none");
attributes.put("job-attributes", "print-quality:enum:3#fit-to-page:boolean:true#sheet-collate:keyword:collated");
PrintJob printJob = new PrintJob.Builder(os.toByteArray())
.jobName("job-name")
.userName("user-name")
.copies(2)
.pageRanges("1-3")
.duplex(false)
.portrait(false)
.color(true)
.pageFormat("iso-a4")
.resolution("300dpi")
.attributes(attributes)
.build();
}catch (Exception e){
e.printStackTrace();
}
ByteArrayOutputStream os=stvorirachun(纳鲁兹巴、杰拉特尼克、布尔斯托拉);
试一试{
CupsClient CupsClient=新的CupsClient(“192.168.68.180”,631);
URL printerURL=新URL(“http://192.168.68.180:631/printers/bixolonIPP");
CupsPrinter CupsPrinter=cupsClient.getPrinter(printerURL);
Map attributes=newhashmap();
属性。put(“压缩”、“无”);
attributes.put(“作业属性”,“打印质量:枚举:3#适合页面:布尔值:真#工作表整理:关键字:整理”);
PrintJob PrintJob=new PrintJob.Builder(os.toByteArray())
.工作名称(“工作名称”)
.userName(“用户名”)
.副本(2份)
.页面范围(“1-3”)
.双工(假)
.肖像(假)
.颜色(真)
.pageFormat(“iso-a4”)
.决议(“300dpi”)
.属性(属性)
.build();
}捕获(例外e){
e、 printStackTrace();
}
当我尝试打印时,出现以下错误
07-18 12:26:29.294 30378-30529/com.appid.apps E/AndroidRuntime: FATAL EXCEPTION: Thread-8
Process: com.appid.apps, PID: 30378
java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar!classes3.dex)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966)
at org.cups4j.operations.IppOperation.sendRequest(IppOperation.java:176)
at org.cups4j.operations.IppOperation.sendRequest(IppOperation.java:131)
at org.cups4j.operations.IppOperation.request(IppOperation.java:67)
at org.cups4j.operations.cups.CupsGetPrintersOperation.getPrinters(CupsGetPrintersOperation.java:56)
at org.cups4j.CupsClient.getPrinters(CupsClient.java:106)
at org.cups4j.CupsClient.getPrinter(CupsClient.java:166)
at com.appid.apps.IPPPrinter.connect(IPPPrinter.java:107)
at com.appid.apps.Printing$1.run(Printing.java:604)
at java.lang.Thread.run(Thread.java:764)
07-18 12:26:29.294 30378-30529/com.appid.apps E/AndroidRuntime:致命异常:线程8
进程:com.appid.apps,PID:30378
java.lang.NoSuchFieldError:没有Lorg/apache/http/conn/ssl/AllowlHostNameVerifier类型的静态字段实例;Lorg/apache/http/conn/ssl/AllowlHostNameVerifier类中;或其超类(声明'org.apache.http.conn.ssl.AllowAllHostnameVerifier'出现在/system/framework/framework.jar!classes3.dex中)
位于org.apache.http.conn.ssl.SSLConnectionSocketFactory(SSLConnectionSocketFactory.java:144)
位于org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966)
在org.cups4j.operations.ippooperation.sendRequest(ippooperation.java:176)上
在org.cups4j.operations.ippooperation.sendRequest(ippooperation.java:131)上
在org.cups4j.operations.ippooperation.request(ippooperation.java:67)上
在org.cups4j.operations.cups.cupsgetPrinterOperation.getPrinters上(cupsgetPrinterOperation.java:56)
位于org.cups4j.CupsClient.getPrinters(CupsClient.java:106)
位于org.cups4j.CupsClient.getPrinter(CupsClient.java:166)
位于com.appid.apps.IPPPrinter.connect(IPPPrinter.java:107)
在com.appid.apps.Printing$1.run(Printing.java:604)
运行(Thread.java:764)
或者,是否有其他库处理来自android的IPP打印?我没有这样的问题。但我认为这可能是cups4j和apache http客户端之间的问题。尝试使用不同版本的google,以确保这些软件包之间的兼容性。我没有遇到这样的问题。但我认为这可能是cups4j和apache http客户端之间的问题。尝试使用不同版本的google,以确保这些软件包之间的兼容性。