Java 从字符集创建新字符串会抛出NoSuchMethodError(Android)
我有一段代码创建了一个新的Java 从字符集创建新字符串会抛出NoSuchMethodError(Android),java,android,string,character-encoding,Java,Android,String,Character Encoding,我有一段代码创建了一个新的字符串,如下所示: private final static Charset UNICODE_CHARSET = Charset.forName("UTF-8"); public String makeNewUnicodeString(byte[] octects) { return new String(octects, UNICODE_CHARSET); } 在我的电脑上测试时,它工作正常。但当我在Android emulator上运行它时,它抛出: j
字符串
,如下所示:
private final static Charset UNICODE_CHARSET = Charset.forName("UTF-8");
public String makeNewUnicodeString(byte[] octects) {
return new String(octects, UNICODE_CHARSET);
}
在我的电脑上测试时,它工作正常。但当我在Android emulator上运行它时,它抛出:
java.lang.NoSuchMethodError: java.lang.String.<init>
我使用的是Android 2.2 API 8,版本2。这似乎是Java 5和Java 6之间的区别 接受字符集的构造函数仅在Java6中,而不在Java5中
编辑——所讨论的构造函数在android api中。。这并不能真正回答问题。因为构造函数
字符串(byte[]data,Charset Charset)
仅添加到API级别9(Android SDK 2.3)中。所以更新SDK版本解决了我的问题。谢谢大家
此处为参考:
-Android开发者参考
.您可以这样使用
byte[] raw = null;
try {
raw = key.getBytes("US-ASCII");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Android SDK提供了构造函数,
byte[] raw = null;
try {
raw = key.getBytes("US-ASCII");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}