Ошибка импорта HoloEverywhere

Во-первых, я новичок в Android. Я делаю приложение и реализую библиотеку под названием HoloEverywhere. Эта библиотека использует в 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" />

Как я могу решить эту проблему и использовать эту библиотеку в своем проекте? Спасибо :) ПС. Извините за мой английский, я знаю, что он не очень хорош.


person Alexrs95    schedule 15.05.2012    source источник
comment
Здравствуйте, я Кристоф (или Waza_be) и впервые вижу такую ​​ошибку! Если я что-то найду, я приду и отвечу вам!   -  person Waza_Be    schedule 05.06.2012
comment
Я делаю шаги, но получаю эту ошибку в файле pom.xml: В этой строке найдено несколько аннотаций: - Не удалось передать org.apache.maven.plugins:maven-enforcer-plugin:pom:1.0 из http://repo. maven.apache.org/maven2 был закэширован в локальном репозитории, повторная попытка разрешения не будет предприниматься до тех пор, пока не истечет интервал обновления центрального хранилища или не будут принудительно обновлены. Исходная ошибка: не удалось передать артефакт org.apache.maven.plugins:maven-enforcer-plugin:pom:1.0 из/в центральный (repo.maven.apache.org maven2): операция отменена. - Ошибка сборки проекта: Неразрешимое расширение сборки: Плагин   -  person mahdi    schedule 06.02.2013
comment
stackoverflow.com/a/20895081/623694   -  person Mehdi Fanai    schedule 03.01.2014


Ответы (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, чтобы включить виджеты темы Holo.

  5. Измените свой activity следующим образом

    public class ChkActionBarSherlock extends SherlockActivity {
        @Override
         public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
    
    }
    
person Gaurav Agarwal    schedule 04.06.2012
comment
: я следовал вашим шагам для holo везде, но он показывает ошибку в Dialogholo.java в этой строке View customView = View.inflate(mContext, R.layout.alert_dialog_holo, null); mTitle = (TextView) customView.findViewById(R.id.alertTitle); Ошибка R не может быть устранена, ошибка Holoalertdialogbuilder.java в этих файлах находится в этой строке mTitle = (TextView) customTitle.findViewById (R.id.alertTitle); FontLoader.loadFont(mTitle, FontLoader.ROBOTO_REGULAR); mIcon = (ImageView) customTitle.findViewById(R.id.icon); установитьCustomTitle (пользовательскийTitle); - person ; 21.07.2012
comment
Ваша проблема выглядит как R can not be resolved. Очистите свой проект и попробуйте найти ошибку в Google. Много данных об этом в сети. - person Gaurav Agarwal; 21.07.2012
comment
: Я пробовал все, ничего не работало. Когда я импортирую holoeverywhere lib только для затмения, я получаю все эти ошибки. - person ; 21.07.2012
comment
: В этом Выполните следующие шаги, чтобы добавить HoloEverywhere в свой проект. Можете ли вы объяснить шаги 4 и 5, я не понял. - person ; 21.07.2012
comment
Убедитесь, что у вас установлен уровень соответствия компилятора 1.6. Проект-›Свойства-›Java Compiler-›Уровень совместимости компилятора. - person Johan B; 14.09.2012
comment
Я думаю, что тема, которая изменила название на: Holo.Theme.Sherlock.Light - person Johan B; 14.09.2012
comment
@JohanB Вам нужно добавить тему в манифест Android, посмотрите, какая из них вам подходит android:theme="@style/Theme.HoloEverywhereDark.Sherlock" - person Gaurav Agarwal; 14.09.2012
comment
Да, но из того, что я вижу, в последней версии нет темы под названием Theme.HoloEverywhereDark.Sherlock, я использую Holo.Theme.Sherlock.Light. - person Johan B; 17.09.2012
comment
Ответ coding crow очень полезен, НО в абзаце отсутствует шаг : Библиотека android-support-v4 в папке libs проекта ActionSherlock должна быть удалена и заменена на android-support-v4-r13.jar присутствует в zip-папке HoloEverywhere. - person Souf Rochdi; 13.06.2013
comment
у меня есть масса ошибок с библиотекой после того, как я загрузил и HoloEverywhere (v1.6.1), и библиотеку ActionBarSherlock (v4.3.1). только у actionBarSherlock есть файл android-support-v4.jar. что здесь происходит? - person android developer; 19.06.2013
comment
не бери в голову. Я исправил это, выбрав добавить библиотеку поддержки в библиотеку actionBarSherlock. теперь мне нужно научиться использовать эту библиотеку. надеюсь будет не тяжело. Я надеюсь, что мое исправление правильное. - person android developer; 19.06.2013
comment
Привет .. Это работало для меня в прошлом. Но только что понял, что сейчас это не работает для последней версии holoeverywhere..github.com/Prototik/HoloEverywhere Нужно использовать egit для eclipse, который не работает для eclipse juno - person ambit; 26.07.2013
comment
@ambit Вы все еще можете загрузить zip-файл из репозитория Prototik Holoeverywhere git. - person Gaurav Agarwal; 26.07.2013
comment
Но выполнение этих шагов дает ошибку типа stackoverflow.com/questions/14278884/ - person ambit; 27.07.2013
comment
@ambit Задайте отдельный вопрос, четко укажите свою проблему со ссылками и изображениями, также вы можете посмотреть IntelliJ Idea CE IDE для Android. - person Gaurav Agarwal; 27.07.2013
comment
Это все еще работает? На шаге 7 добавления HoloEverywhere, когда ABS добавляется в HoloEverywhere как библиотеку, я получаю около 1000 error: Attribute "<whatever attribute>" has already been defined. - person Felix; 19.10.2013
comment
@GauravAgarwal, спасибо за быстрый ответ! Итак, у меня есть два проекта библиотеки (ABS и HoloEverywhere) в моей рабочей области. Ни один из них не знает о другом, т.е. ABS не используется HoloEverywhere. Я создаю пустой проект Android. Добавление любого библиотечного проекта — это нормально, но как только я добавляю оба, я получаю эти ошибки error: Attribute "<...>" has already been defined. Есть идеи? - person Felix; 19.10.2013
comment
@nissemand HoloEverywhere использует ABS. ABS не использует HoloEverywhere. - person Gaurav Agarwal; 19.10.2013
comment
@GauravAgarwal, я понял! Я использовал последнюю версию HoloEverywhere (следуя инструкциям из GitHub HoloEverywhere), и, очевидно, последняя версия несовместима с ABS. Вместо этого я использовал HoloEverywhere v1.6.8, и все работает :) Спасибо за помощь Gaurav! - person Felix; 19.10.2013

Кажется, что

android:theme="@style/Theme.HoloEverywhereDark.Sherlock"

вызвать ошибку.

Измени это:

android:theme="@style/Holo.Theme"

резонирует здесь:

Github

правильный!

person daimajia    schedule 11.12.2012

У меня была такая же ошибка в моем проекте. Это то, что я сделал, щелкните правой кнопкой мыши HoloEverywhere (свойства- > android- > библиотека), удалите ActionBarSherlock из списка, затем снова добавьте проект ActionBarSherlock, нажав «Добавить», после этого очистите проект и все ошибки исчезнут.

person macsausi    schedule 15.09.2012

Создатель ActionBarSherlock Джейк Уортон объявил в Google+, что дальнейшая разработка ActionBarSherlock остановлена. ActionBarSherlock 4.4 — последний выпуск, в котором могут быть исправлены ошибки, но новых функций не будет:

Хотя в ближайшие недели может быть выпущена одна или две точки, версия 4.4 обещает стать The Last Release™.

https://plus.google.com/+JakeWharton/posts/F3HkWY9J8fK

Как я спросил на форум вопросов Holoeverywhere и ответил разработчикам:

HoloEverywhere не имеет никакой зависимости от ABS, начиная с версии 2.0.

Поэтому вам больше не следует использовать ABS и удалить библиотеку из своего проекта и заменить ее holoeverywhere напрямую или с помощью ActionbarCompat из библиотеки поддержки Google.

person Mehdi Fanai    schedule 03.01.2014