0

У меня есть приложение, написанное пару лет назад, что я нахожусь в процессе обслуживания. Приложение использует HoloEverywhere и ActionBarSherlock для обеспечения определенной функциональности в старых версиях ОС. До недавнего времени с этим не возникало никаких проблем, поэтому было довольно шоком увидеть жалобы поддержки о сбое приложения при запуске на этой неделе. Эти сбои все на устройствах Android 6.0, и все они имеют следующее сообщение об исключении.ActionBarSherlock отключает мое приложение на Android 6.0

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.laridian.pocketbible/com.laridian.pocketbible.PocketBibleMainActivity}: java.lang.RuntimeException: java.lang.IllegalAccessException: java.lang.Class<org.holoeverywhere.addon.AddonSherlock$HoloActionBarSherlockNative> is not accessible from java.lang.Class<com.actionbarsherlock.ActionBarSherlock> 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: java.lang.Class<org.holoeverywhere.addon.AddonSherlock$HoloActionBarSherlockNative> is not accessible from java.lang.Class<com.actionbarsherlock.ActionBarSherlock> 
at com.actionbarsherlock.ActionBarSherlock.wrap(ActionBarSherlock.java:238) 
at org.holoeverywhere.addon.AddonSherlock$AddonSherlockA.getSherlock(AddonSherlock.java:54) 
at org.holoeverywhere.addon.AddonSherlock$AddonSherlockA.requestWindowFeature(AddonSherlock.java:159) 
at org.holoeverywhere.app.Activity$24.action(Activity.java:515) 
at org.holoeverywhere.app.Activity$24.action(Activity.java:1) 
at org.holoeverywhere.addon.IAddonBasicAttacher.performAddonAction(IAddonBasicAttacher.java:122) 
at org.holoeverywhere.app.Activity.performAddonAction(Activity.java:505) 
at org.holoeverywhere.app.Activity.requestWindowFeature(Activity.java:512) 
at android.support.v4.app._HoloActivity.onInit(_HoloActivity.java:491) 
at android.support.v4.app._HoloActivity.forceInit(_HoloActivity.java:227) 
at org.holoeverywhere.app.Activity.onCreate(Activity.java:225) 
at com.laridian.pocketbible.PocketBibleActivity.onCreate(PocketBibleActivity.java:126) 
at com.laridian.pocketbible.PocketBibleMainActivity.onCreate(PocketBibleMainActivity.java:1180) 
at android.app.Activity.performCreate(Activity.java:6237) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
... 9 more 
Caused by: java.lang.IllegalAccessException: java.lang.Class<org.holoeverywhere.addon.AddonSherlock$HoloActionBarSherlockNative> is not accessible from java.lang.Class<com.actionbarsherlock.ActionBarSherlock> 
at java.lang.reflect.Constructor.newInstance(Native Method) 
at com.actionbarsherlock.ActionBarSherlock.wrap(ActionBarSherlock.java:230) 
... 24 more 

Так что я знаю, что что-то изменилось в отношении этих библиотек. Однако я не уверен, что я могу с этим поделать. Есть ли новая версия ActionBarSherlock, совместимая с Android 6.0? Есть ли версия HoloEverywhere, которая будет работать на Android 6.0? Здесь что-то не хватает? Или мне придется вернуться и переписать все мое приложение для поддержки Android 6.0?

+0

http://stackoverflow.com/questions/31744752/app-crash-in-android-m Попробуйте это, это сработало для меня. –

ответ

1

Вы работаете со старой версией устаревшей библиотеки. HoloEverywhere прекратила использовать ABS, как 2 года назад. ABS была устаревшей давным-давно тоже. Сейчас никто не поддерживает эти библиотеки.

Мой совет: удалите свою зависимость от HoloEverywhere. Затем включите материал и/или переместите свой minSdk на 15.

Если вы не можете этого сделать: обновите до последней версии HoloEverywhere. Это более быстрое исправление, но вы работаете с устаревшей библиотекой ...

+0

Вы действительно пробовали последнюю версию (2.1.0 в то время), или это просто указание или предположение, что это сработает? –

+0

Это было предположение. Но знаю, что знаю, что версия Las для HoloEverywhere имеет серьезные проблемы на 6.0. Пожалуйста, прекратите использовать его. –

+0

Я собирался, но я не был уверен, почему вы сказали последние работы (так как он был выпущен до 2015 года). –

Смежные вопросы