0

我正在为我的应用程序使用 ZXing 库,并且我使用这个类。但是当我运行我的应用程序时,我在这一行出现错误:

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。这里有什么问题?

4

1 回答 1

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 的标准库兼容)

于 2013-06-09T00:50:18.487 回答