Android 2.2: 解析 NoSuchMethodError java.lang.String.getbytes
Android 2.2: Parse NoSuchMethodError java.lang.String.getbytes
将 Android 2.2
和 Parse 1.8.0
与 compile 'com.parse.bolts:bolts-android:1.+'
结合使用
我在使用 Android 2.2 模拟器 (Nexus S)
启动应用程序时得到了这个
java.lang.NoSuchMethodError: java.lang.String.getBytes
at com.parse.Parse.saveDiskObject(Parse.java:998)
at com.parse.Parse.saveDiskObject(Parse.java:1088)
at com.parse.PushRouter.saveStateToDisk(PushRouter.java:694)
at com.parse.PushRouter.subscribe(PushRouter.java:747)
at com.parse.PushRouter.then(PushRouter.java:77)
at com.parse.PushRouter.then(PushRouter.java:74)
at bolts.Task.run(Task.java:453)
at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:97)
at bolts.Task.completeImmediately(Task.java:449)
at bolts.Task.continueWith(Task.java:323)
at bolts.Task.continueWith(Task.java:334)
at bolts.Task.then(Task.java:386)
at bolts.Task.then(Task.java:378)
at bolts.Task.run(Task.java:486)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
at java.lang.Thread.run(Thread.java:1096)
这是什么原因造成的?我试着改变
ParseInstallation.getCurrentInstallation().saveEventually();
到 ParseInstallation.getCurrentInstallation().saveInBackground();
但没有区别。
看起来解析框架(com.parse.Parse.saveDiscObject 方法)使用 java.lang.String.getBytes(字符集),自 API 级别 9 开始可用(参见 http://developer.android.com/reference/java/lang/String.html#getBytes%28java.nio.charset.Charset%29)
Android 2.2 是 API 级别 8.
这至少说明了这一点。我不确定如何解决这个问题。如果可能的话,也许降级到早期版本的 Parse。
将 Android 2.2
和 Parse 1.8.0
与 compile 'com.parse.bolts:bolts-android:1.+'
结合使用
我在使用 Android 2.2 模拟器 (Nexus S)
java.lang.NoSuchMethodError: java.lang.String.getBytes
at com.parse.Parse.saveDiskObject(Parse.java:998)
at com.parse.Parse.saveDiskObject(Parse.java:1088)
at com.parse.PushRouter.saveStateToDisk(PushRouter.java:694)
at com.parse.PushRouter.subscribe(PushRouter.java:747)
at com.parse.PushRouter.then(PushRouter.java:77)
at com.parse.PushRouter.then(PushRouter.java:74)
at bolts.Task.run(Task.java:453)
at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:97)
at bolts.Task.completeImmediately(Task.java:449)
at bolts.Task.continueWith(Task.java:323)
at bolts.Task.continueWith(Task.java:334)
at bolts.Task.then(Task.java:386)
at bolts.Task.then(Task.java:378)
at bolts.Task.run(Task.java:486)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
at java.lang.Thread.run(Thread.java:1096)
这是什么原因造成的?我试着改变
ParseInstallation.getCurrentInstallation().saveEventually();
到 ParseInstallation.getCurrentInstallation().saveInBackground();
但没有区别。
看起来解析框架(com.parse.Parse.saveDiscObject 方法)使用 java.lang.String.getBytes(字符集),自 API 级别 9 开始可用(参见 http://developer.android.com/reference/java/lang/String.html#getBytes%28java.nio.charset.Charset%29)
Android 2.2 是 API 级别 8.
这至少说明了这一点。我不确定如何解决这个问题。如果可能的话,也许降级到早期版本的 Parse。