2011-07-07 21 views
6

をスローします。は、私は以下のように新しい文字列を作成するコードのスニペットを持つNoSuchMethodError(アンドロイド)

java.lang.NoSuchMethodError: java.lang.String.<init> 

をしかし、これは動作します:私はAdroidエミュレータ上でそれを実行したときしかし、それはスロー私がAdroid 2.2 API 8、REV2を使用してい

public String makeUnicodeString(byte[] octects) { 
    try { 
     return new String(octects, "UTF-8") 
    } catch (UnsupportedEncodingException uee) { 
     // never throw. 
    } 
} 

答えて

4

コンストラクタString (byte[] data, Charset charset)はAPIレベル9(Android SDK 2.3)でのみ追加されています。 SDKのバージョンを更新することで、私の問題は解決しました。みんな、ありがとう。

ここで参照:

String - Androidの開発者用リファレンス。

API Levels of Android Platform

1

これは文字セットを受け入れるコンストラクタは、Java 6ではなく、Javaの5でのみ

http://download.oracle.com/javase/1,5.0/docs/api/java/lang/String.html

http://download.oracle.com/javase/6/docs/api/java/lang/String.html

されたJava 5とJavaとの間の差6.

ように思えますEDIT - 問題のコンストラクタはアンドロイドAPIにあります。これは本当に質問に答えません。

+0

AndroidのSDKは、しかし、コンストラクタを提供していますように使用することができます/String.html#String(byte[],%20java.nio.charset.Charset)) –

+0

@マーク - そうです。私は私の答えを編集します。 – Kal

0

あなたは[ `文字列(バイト配列、文字セット)`](http://developer.android.com/reference/java/langこれは

byte[] raw = null; 
     try { 
      raw = key.getBytes("US-ASCII"); 
     } catch (UnsupportedEncodingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
関連する問題