2015-01-20 4 views
1

Использование Android 2.2 и Parse 1.8.0 с compile 'com.parse.bolts:bolts-android:1.+' я получаю это при запуске приложения с Android 2,2 эмулятора (Nexus S)Android 2.2: Разбираем NoSuchMethodError java.lang.String.getbytes

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();, но никакой разницы.

ответ

2

Похоже, рамки синтаксического анализа (метод com.parse.Parse.saveDiscObject) использует java.lang.String.getBytes (Charset), которая доступна с уровня API 9 (см http://developer.android.com/reference/java/lang/String.html#getBytes%28java.nio.charset.Charset%29)

Android 2.2 API уровня 8.

Это, по крайней мере, объясняет это. Я не знаю, как это можно решить. Возможно, понизитесь до более ранней версии Parse, если это возможно.