Пример скользящего меню не работает: java.lang.IllegalStateException: RandomList должен быть прикреплен к SherlockFragmentActivity

Я загрузил библиотеку Sliding Menu и Actionsbarsherlock из Ссылки, я нашел пример этого из пример с видео на YouTube ссылка, чтобы показать работу. Я выполнил все шаги, но когда я запускаю код, он дает мне.

 05-28 15:41:21.665: E/AndroidRuntime(2023): FATAL EXCEPTION: main
05-28 15:41:21.665: E/AndroidRuntime(2023): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rufflez.slidingmenuexample/com.rufflez.slidingmenuexample.MainActivity}: java.lang.IllegalStateException: RandomList must be attached to a SherlockFragmentActivity.
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.os.Looper.loop(Looper.java:137)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.app.ActivityThread.main(ActivityThread.java:4424)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at java.lang.reflect.Method.invokeNative(Native Method)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at java.lang.reflect.Method.invoke(Method.java:511)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at dalvik.system.NativeStart.main(Native Method)
05-28 15:41:21.665: E/AndroidRuntime(2023): Caused by: java.lang.IllegalStateException: RandomList must be attached to a SherlockFragmentActivity.
05-28 15:41:21.665: E/AndroidRuntime(2023):     at com.actionbarsherlock.app.SherlockListFragment.onAttach(SherlockListFragment.java:25)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:867)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1133)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.app.Activity.performStart(Activity.java:4475)
05-28 15:41:21.665: E/AndroidRuntime(2023):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1929)
05-28 15:41:21.665: E/AndroidRuntime(2023):     ... 11 more

Не знаю, почему возникает ошибка, я также добавил обе библиотеки.

добавлены библиотеки


person kaibuki    schedule 28.05.2013    source источник
comment
У вас возникли трудности с запуском образцов библиотеки или использованием этой библиотеки в вашем собственном проекте?   -  person M-WaJeEh    schedule 28.05.2013
comment
в образцах, сначала тестируя образцы..   -  person kaibuki    schedule 29.05.2013


Ответы (2)


Проблема:

java.lang.IllegalStateException: RandomList must be attached to a SherlockFragmentActivity

Решение:

вам нужно расширить SherlockActivity

Ссылка:

Ознакомьтесь с руководством по использованию SlidingMenu ,

прочитайте последний пункт шага 2 в разделе Как интегрировать эту библиотеку в ваши проекты

«Если вы хотите использовать другую библиотеку, такую ​​как ActionBarSherlock, вы можете просто изменить SlidingActivities, чтобы расширить SherlockActivities вместо обычных действий»

Пояснение:

введите здесь описание изображения

Как показано на скриншоте выше,

SlidingActivity extends SherlockActivity.

Точно так же требуются следующие изменения,

 - SlidingListActivity extends SherlockListActivity
 - SlidingFragmentActivity extends SherlockFragmentActivity
 - SlidingPreferenceActivity extends SherlockPreferenceActivity

Примечание. Не забудьте добавить библиотеку actionbarsherlock в библиотеку SlidingMenu для доступа к SherlockActivity.

Я надеюсь, что это будет полезно!

person Mehul Joisar    schedule 28.05.2013
comment
Это был правильный ответ для меня. Мне кажется странным, что инструкции требуют, чтобы вы модифицировали библиотеку, которую вы только что загрузили, но это так. Спасибо за совет! - person Peter Gluck; 03.09.2013
comment
@PeterGluck: рад помочь!! - person Mehul Joisar; 03.09.2013

Я решил это в два этапа:

  1. Добавьте также библиотеку actionbarsherlock в библиотеку SlidingMenu.
  2. Откройте com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity и расширьте его из SherlockFragmentActivity .
person M-WaJeEh    schedule 28.05.2013