使用zxing生成二维码的问题
import java.io.File;
import java.nio.file.Path;
import java.util.HashMap;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class CreatQRCode {
public static void main(String[] args){
int width=300;
int height=300;
String format="png";
String content="www.imooc.com";
HashMap hints= new HashMap();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
hints.put(EncodeHintType.MARGIN,2);
try {
BitMatrix bitMatrix =new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height);
Path file=new File("D:/MyEclipse/code/img.png").toPath();
MatrixToImageWriter.writeToPath(bitMatrix, format, file);
} catch (Exception e) {
e.printStackTrace();
}
}
}
错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Type mismatch: cannot convert from ArrayList<?> to Collection<BlockPair>
Cannot instantiate the type ArrayList<?>
Syntax error on token "<", ? expected after this token
at com.google.zxing.qrcode.encoder.Encoder.interleaveWithECBytes(Encoder.java:406)
at com.google.zxing.qrcode.encoder.Encoder.encode(Encoder.java:136)
at com.google.zxing.qrcode.QRCodeWriter.encode(QRCodeWriter.java:78)
at com.google.zxing.MultiFormatWriter.encode(MultiFormatWriter.java:102)
at com.google.zxing.MultiFormatWriter.encode(MultiFormatWriter.java:49)
at com.zxing.CreatQRCode.main(CreatQRCode.java:28)
不知道怎么解决。jdk是1.7的。引入的zxing包也是用jdk1.7打包的。
MyEclipse编译。