Ответ 1
Я нахожу "решение". Просто удалите эту функцию из своей активности:
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
}
У меня странная проблема. У меня есть приложение, которое я развернул на устройстве Android 4.4 и использую библиотеку Отто. Я развернул приложение на устройстве Android 5.0. Он по-прежнему работает. Я повторил в 4.4, и приложение не будет запущено.
По-видимому, он пытается использовать PersistableBundle.class, который является классом API 21. Здесь мой журнал:
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.os.PersistableBundle" on path: DexPathList[[zip file "/data/app/fr.myapp.apk"],nativeLibraryDirectories=[/data/app-lib/fr.myapp, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
at java.lang.Class.getDeclaredMethods(Native Method)
at java.lang.Class.getDeclaredMethods(Class.java:656)
at com.squareup.otto.AnnotatedHandlerFinder.loadAnnotatedMethods(AnnotatedHandlerFinder.java:52)
at com.squareup.otto.AnnotatedHandlerFinder.findAllProducers(AnnotatedHandlerFinder.java:126)
at com.squareup.otto.HandlerFinder$1.findAllProducers(HandlerFinder.java:33)
at com.squareup.otto.Bus.register(Bus.java:191)
Я нахожу "решение". Просто удалите эту функцию из своей активности:
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
}
Измените targetVersion на версию API вашего устройства.
У меня было targetVersion = 21, когда у моего устройства было 4.4 (API 19), изменив значение до 19, решив проблему.
У меня была такая же проблема на телефонах Samsung Galaxy 3mini и Local. Но я исправил с помощью переопределяющего действия метод. Надеюсь, он сработает для вас.
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
try {
BusApplication.getInstance().register(this);
} catch (Exception e) {
e.printStackTrace();
}
}