将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$1.then(PushRouter.java:77)
at com.parse.PushRouter$1.then(PushRouter.java:74)
at bolts.Task$9.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$7.then(Task.java:386)
at bolts.Task$7.then(Task.java:378)
at bolts.Task$10.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();
,但没有区别。
答案 0 :(得分:2)
看起来像解析框架(com.parse.Parse.saveDiscObject方法)使用自API级别9开始可用的java.lang.String.getBytes(Charset)(参见http://developer.android.com/reference/java/lang/String.html#getBytes%28java.nio.charset.Charset%29)
Android 2.2是API级别8。
这至少解释了它。我不确定如何解决这个问题。如果可能的话,可能会降级到早期版本的Parse。