2012-02-09 15 views
-1

では、私は私のサンプルAndroidアプリでgetBytes(int start, int end, byte[] data, int index)メソッドを使用しようとすると、エミュレータでテストしています。GetBytesメソッド(int型開始、int型エンド、バイト[]データ、int型のインデックス)のAndroid

私はこの方法は、Android 2.0で正常に動作することを発見 -

2.3しかし、アンドロイド3.0の場合 - 3.1、それはまたjava.lang.StringIndexOutOfBoundsException

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.opview); 

     String test="TEST1234"; 
     byte [] bb = new byte[10]; 
     test.getBytes(0, 4, bb, 6); 
     Log.i("TAG", "Output :"+(new String(bb))); 
     Log.i("TAG", "OnCreate() End "); 
    } 

を投げ、私はありませんがあることを確認< 0を起動した場合、私の入力は

以下の条件で来ていないので、IndexOutOfBoundsExceptionが終わり>の長さ()、発生する可能性があります方法は、インデックス< 0またはend - start> data.length - indexを指定します。

アンドロイド3.0で任意のエンコーディングの問題はありますか?

私の問題の回避策はありますか?

+1

あなたの質問は、あなたが私たちはあまりにもあなたを助ける見ることができるいくつかのサンプルコード、スタックトレースまたはものを提供する必要があり、あまりにも漠然としています! – Sephy

+0

サンプルコードを追加しました。Android 3.0でこれを試してください。例外が発生します。 Android 2.1ではうまく動作します – babji

答えて

0

あなたはAndroid documentationを通じて顔をしている場合は、getBytes(int start, int end, byte[] data, int index)は廃止されたことがわかります。 getBytes()またはgetBytes(String)のいずれかを使用してください。それは、Android 3.0で奇妙な行動をしている理由

これが最も可能性が高いです。

関連する問題