我正在为我的应用程序使用ZXing库,我使用this类。 但是当我运行我的应用程序时,我遇到了错误:
String msg = "123456";
byte[] msgBinary = msg.getBytes(Charset.forName("ISO-8859-1"));
错误如下:
java: no suitable method found for getBytes(java.nio.charset.Charset)
method java.lang.String.getBytes(java.lang.String) is not applicable
(actual argument java.nio.charset.Charset cannot be converted to java.lang.String by method invocation conversion)
method java.lang.String.getBytes(int,int,byte[],int) is not applicable
(actual and formal argument lists differ in length)
method java.lang.String.getBytes() is not applicable
(actual and formal argument lists differ in length)
有谁可以告诉我这里的问题我检查了getBytes输入参数仅是String(getBytes(java.lang.String encoding))但Charset.forName返回Charset。 这里有什么问题?
答案 0 :(得分:3)
正如@Code Painters所暗示的那样,核心库和Android应用程序是在假设Java 6和Android API等级10(又名Gingerbread / Android 2.3.3)的情况下编写的。如果您定位的是早期版本的Java或Android,则可能无效。您可以定位API 10+(或至少9个)或修改代码,以便不使用在您支持的API级别之后添加的方法。
(还有一些令人惊讶的陷阱。看看String.isEmpty()
和new IOException(Throwable)
- 两种标准的Java 6方法 - 都被添加到Android中。实际上,Android开始在Java 5之间和6并且最近才兼容Java 6的标准库)