我正在研究Cordova插件,并希望添加打印QR码的功能。为此,我决定使用ZXing库。
我正在像这样在plugin.xml
文件中注册库的依赖项
<framework src="com.google.zxing:core:3.3.0" value="gradle" />
<framework src="com.google.zxing:javase:3.3.0" value="gradle" />
然后以这样的代码导入包
import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
这是使用ZXing的代码的一部分
boolean printQRCode(CallbackContext callbackContext, String str) throws WriterException, IOException {
try {
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix bitMatrix = qrCodeWriter.encode(str, BarcodeFormat.QR_CODE, 100, 100);
ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream);
byte[] pngData = pngOutputStream.toByteArray();
mmOutputStream.write(pngData);
Log.d(LOG_TAG, "PRINT QRCODE SENT");
callbackContext.success("PRINT QRCODE SENT");
return true;
} catch (Exception e) {
String errMsg = e.getMessage();
Log.e(LOG_TAG, errMsg);
e.printStackTrace();
callbackContext.error(errMsg);
}
return false
}
问题是我收到以下错误消息
错误:包com.google.zxing.client.j2se不存在
错误:找不到符号(MatrixToImageWriter)
我在SO和Google中找到了一些解决方案,但是没有一个解决方案说明如何在Cordova项目设置中解决该问题。我对Java的经验确实不是很丰富,并且,如果可能的话,我希望仅通过plugin.xml
文件配置ZXing。任何
谢谢!