java getBytes错误

时间:2013-06-08 21:11:27

标签: java android zxing

我正在为我的应用程序使用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。 这里有什么问题?

1 个答案:

答案 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的标准库)