2013-06-08 2 views
0

내 응용 프로그램에 ZXing 라이브러리를 사용하고 있으며 this 클래스를 사용합니다. 하지만 내 응용 프로그램을 실행할 때 나는이 줄에 오류 앙이 :java getBytes error

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 입력 parameteres 오직 String (getBytes (java.lang.String encoding))이지만 Charset.forName은 Charset을 반환합니다. 여기에 어떤 문제가 있습니까?

+3

getBytes (Charset) 메소드는 API 레벨 9에서만 사용 가능합니다. –

+1

getBytes (String) 메소드를 사용하여보십시오. API 레벨 1 이후에 있습니다. 간단히'getBytes() ISO-8591-1 "). –

답변

3

@Code Painters가 언급 한 것처럼 핵심 라이브러리 및 Android 앱은 Java 6 및 Android API 레벨 10 (일명 Gingerbread/Android 2.3.3)으로 가정되어 작성되었습니다. 이전 버전의 Java 또는 Android를 타겟팅하는 경우 작동하지 않을 수 있습니다. API 10 이상 (또는 최소 9)을 타겟팅하거나 지원하는 API 수준 이후에 추가 된 메소드를 사용하지 않도록 코드를 수정할 수 있습니다.

(표준 Java 6 방식 인 String.isEmpty()과 두 가지가 Android에 추가 된 것을보세요. 실제로 Android는 Java 5와 6 사이에서 시작되었으며 최근 호환됩니다

+0

전화하세요. 'String.isEmpty()'는 안드로이드 2.2에서 계속 사용하려고 시도한 것으로, 거기에는 없었습니다. 문서는 그것이 있어야한다고 제안했으나 그렇지 않았습니다. – hotshot309