Ошибка импорта HoloEverywhere
Прежде всего, я новичок с Android. Я делаю приложение, и я реализую библиотеку под названием http://holoeverywhere.com/. Эту библиотеку используют в themes.xml библиотеки ActionBar Sherlock. Я импортировал в свою рабочую область ActionBar Sherlock и добавил его в HoloEverywhere. Затем я добавил HoloEverywhere в свой проект, но когда я пытаюсь его использовать, у меня появляется ошибка (я пытался использовать кнопку):
The following classes could not be instantiated:
- com.WazaBe.HoloEverywhere.ButtonHolo (Open Class, Show Error Log)
See the Error Log (Window > Show View) for more details.
Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse.
Я поместил путь к классу в моем макете, например так:
<com.WazaBe.HoloEverywhere.ButtonHolo
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/text" />
Как я могу решить эту проблему и использовать эту библиотеку в моем проекте? Спасибо:) PS. Извините за мой английский, я знаю, что это не очень хорошо.
4 ответа
Следуйте инструкциям ниже (взято из блога здесь), чтобы добавить ActionBarSherlock
- Скачайте.zip/.tgz и распакуйте его
- Перейти к затмению и выбрать
File->New-> Android Project
- Выбрать
Create project from existing source
а потомbrowse
кlibrary
папка внутри извлеченаAndroidBarSherlock
папка - Цель сборки должна быть самой последней (14 или 15), но ваша minSdkVersion может быть меньше (7 или 8)
- Нажмите
Finish
- Щелкните правой кнопкой мыши по вновь созданному проекту и перейдите к
Properties
, - Под
Android
заголовок, вы должны увидеть разделLibrary
с флажкомIsLibrary
, Убедитесь, что это проверено. - Щелкните правой кнопкой мыши -> Свойства на проекте, в который вы хотите добавить
AndroidBarSherlock
подAndroid
заголовок иLibrary
раздел выбратьAdd
, - Вы должны увидеть
ActionBarSherlock
библиотека, добавьте это в свой проект - Наконец, если вы используете поддержку совместимости, вам нужно удалить этот jar, так как он включен в ActionBarSherlock.
Следуйте инструкциям ниже, чтобы добавить HoloEverywhere
- Загрузите Zip с GitHub на свой компьютер
- Распакуйте папку
- Перейти к затмению и выбрать
File->New-> Android Project
- Выбрать
Create project from existing source
а потомbrowse
кHoloEverywhereLib
папка внутри извлеченной папки - Нажмите
Finish
- Щелкните правой кнопкой мыши по вновь созданному проекту и перейдите к
Properties
, - Под
Android
заголовок, вы должны увидеть разделLibrary
с флажкомIsLibrary
, Убедитесь, что это проверено и нажмитеAdd
и ранее добавленная библиотекаActionBarSherlock
,
Выполните следующие шаги, чтобы добавить HoloEverywhere
к вашему проекту
- Создать новый проект Android
- Щелкните правой кнопкой мыши на проекте -> Свойства -> Android -> Добавить, добавить оба
ActionBarSherlock
а такжеHoloEverywhere
Изменить
Android Manifest
следовать<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Holo.Theme">
Редактировать тебя
main.xml
включить виджеты темы Холо.Измени свой
activity
следующееpublic class ChkActionBarSherlock extends SherlockActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
Кажется, что
android:theme="@style/Theme.HoloEverywhereDark.Sherlock"
вызвать ошибку.
Измени это:
android:theme="@style/Holo.Theme"
Резоны здесь:
правильный!
У меня была та же ошибка в моем проекте. Это то, что я сделал, щелкнув правой кнопкой мыши по HoloEverywhere (properties->android->library), удалите ActionBarSherlock из списка, затем повторно добавьте проект ActionBarSherlock, нажав кнопку add, после чего очистите проект и все ошибки исчезнут.
Создатель ActionBarSherlock Джейк Уортон объявил в Google+, что дальнейшая разработка ActionBarSherlock остановлена. ActionBarSherlock 4.4 является последним выпуском и может получить исправления ошибок, но новых функций не будет:
Несмотря на то, что в ближайшие недели может появиться один или два релиза, версия 4.4 станет последней версией ™.
https://plus.google.com/+JakeWharton/posts/F3HkWY9J8fK
Как я спросил на форуме вопросов holoeverywhere и ответил разработчикам:
HoloEverywhere не имеет никакой зависимости от ABS, начиная с версии 2.0
Поэтому вам не следует больше использовать ABS, удалять библиотеку из своего проекта и заменять ее везде или напрямую на ActionbarCompat из библиотеки поддержки Google.