Tôi có một đoạn mã tạo một new String như sau:Tạo một String mới từ một Charset ném NoSuchMethodError (Android)
private final static Charset UNICODE_CHARSET = Charset.forName("UTF-8");
public String makeNewUnicodeString(byte[] octects) {
return new String(octects, UNICODE_CHARSET);
}
Nó hoạt động tốt khi thử nghiệm trên máy tính của tôi. Nhưng khi tôi chạy nó trên giả lập Adroid, nó ném:
java.lang.NoSuchMethodError: java.lang.String.<init>
Nhưng công trình này:
public String makeUnicodeString(byte[] octects) {
try {
return new String(octects, "UTF-8")
} catch (UnsupportedEncodingException uee) {
// never throw.
}
}
Tôi đang sử dụng Adroid 2.2 API 8, rev2.
Android SDK cung cấp các constructor mặc dù, [ 'String (byte mảng, Charset)'] (http://developer.android.com/reference/java/lang /String.html#String(byte[],%20java.nio.charset.Charset)) –
@Mark - bạn nói đúng. Tôi sẽ chỉnh sửa câu trả lời của mình. – Kal