java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
在模拟器中,我可以 运行 我的应用程序,但在带有 Jelly Bean 的设备上 OS 我会崩溃。知道为什么吗?
07-04 12:51:57.576 18243-18279/com.j4nos.moviebuffs6 E/AndroidRuntime: FATAL EXCEPTION: Thread-7940
java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
at com.j4nos.moviebuffs6.Utility.run(Utility.java:52)
at java.lang.Thread.run(Thread.java:838)
这是我需要字符编码的行:
byte[] out = str.getBytes(StandardCharsets.UTF_8);
StandardCharsets
was added in API Level 19。它不适用于 Android.
的任何 Jelly Bean 版本
问题是:你要支持果冻豆吗?
如果是:您可以改为使用 getBytes
方法的字符串参数化版本。您甚至可以根据 API 版本 运行 拆分代码行以使用一个版本而不是另一个版本。 (我不推荐这个!)
如果否:只需将您的应用限制为最低 API- 等于或高于 19 的版本。
在String
Class中声明了各种重载.getBytes()
方法。
public void getBytes(int, int, byte[], int);
public byte[] getBytes(java.lang.String) throws java.io.UnsupportedEncodingException;
public byte[] getBytes(java.nio.charset.Charset);
public byte[] getBytes();
你可以使用其中的任何一个。但你应该试试这个..
byte[] out = str.getBytes("UTF-8");
而不是
byte[] out = str.getBytes(StandardCharsets.UTF_8);
在模拟器中,我可以 运行 我的应用程序,但在带有 Jelly Bean 的设备上 OS 我会崩溃。知道为什么吗?
07-04 12:51:57.576 18243-18279/com.j4nos.moviebuffs6 E/AndroidRuntime: FATAL EXCEPTION: Thread-7940
java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
at com.j4nos.moviebuffs6.Utility.run(Utility.java:52)
at java.lang.Thread.run(Thread.java:838)
这是我需要字符编码的行:
byte[] out = str.getBytes(StandardCharsets.UTF_8);
StandardCharsets
was added in API Level 19。它不适用于 Android.
问题是:你要支持果冻豆吗?
如果是:您可以改为使用 getBytes
方法的字符串参数化版本。您甚至可以根据 API 版本 运行 拆分代码行以使用一个版本而不是另一个版本。 (我不推荐这个!)
如果否:只需将您的应用限制为最低 API- 等于或高于 19 的版本。
在String
Class中声明了各种重载.getBytes()
方法。
public void getBytes(int, int, byte[], int);
public byte[] getBytes(java.lang.String) throws java.io.UnsupportedEncodingException;
public byte[] getBytes(java.nio.charset.Charset);
public byte[] getBytes();
你可以使用其中的任何一个。但你应该试试这个..
byte[] out = str.getBytes("UTF-8");
而不是
byte[] out = str.getBytes(StandardCharsets.UTF_8);