Ошибка импорта 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

  1. Скачайте.zip/.tgz и распакуйте его
  2. Перейти к затмению и выбрать File->New-> Android Project
  3. Выбрать Create project from existing source а потом browse к library папка внутри извлечена AndroidBarSherlock папка
  4. Цель сборки должна быть самой последней (14 или 15), но ваша minSdkVersion может быть меньше (7 или 8)
  5. Нажмите Finish
  6. Щелкните правой кнопкой мыши по вновь созданному проекту и перейдите к Properties,
  7. Под Android заголовок, вы должны увидеть раздел Library с флажком IsLibrary, Убедитесь, что это проверено.
  8. Щелкните правой кнопкой мыши -> Свойства на проекте, в который вы хотите добавить AndroidBarSherlock под Android заголовок и Library раздел выбрать Add,
  9. Вы должны увидеть ActionBarSherlock библиотека, добавьте это в свой проект
  10. Наконец, если вы используете поддержку совместимости, вам нужно удалить этот jar, так как он включен в ActionBarSherlock.

Следуйте инструкциям ниже, чтобы добавить HoloEverywhere

  1. Загрузите Zip с GitHub на свой компьютер
  2. Распакуйте папку
  3. Перейти к затмению и выбрать File->New-> Android Project
  4. Выбрать Create project from existing source а потом browse к HoloEverywhereLib папка внутри извлеченной папки
  5. Нажмите Finish
  6. Щелкните правой кнопкой мыши по вновь созданному проекту и перейдите к Properties,
  7. Под Android заголовок, вы должны увидеть раздел Library с флажком IsLibrary, Убедитесь, что это проверено и нажмите Add и ранее добавленная библиотека ActionBarSherlock,

Выполните следующие шаги, чтобы добавить HoloEverywhere к вашему проекту

  1. Создать новый проект Android
  2. Щелкните правой кнопкой мыши на проекте -> Свойства -> Android -> Добавить, добавить оба ActionBarSherlock а также HoloEverywhere
  3. Изменить Android Manifest следовать

    <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Holo.Theme">

  4. Редактировать тебя main.xml включить виджеты темы Холо.

  5. Измени свой 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"

Резоны здесь:

Github

правильный!

У меня была та же ошибка в моем проекте. Это то, что я сделал, щелкнув правой кнопкой мыши по 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.

Другие вопросы по тегам