it-swarm.com.ru

Проблемы с импортом проекта в Android Studio относительно ActionBarSherlock

У кого-то еще есть проблемы с импортом проекта с ActionBarSherlock? У меня есть 100 ошибок и 17 предупреждений. Это отлично работало в Eclipse. Я следовал инструкциям по созданию файла сборки Gradle . Не было ошибок импорта, пока я не попытался построить проект. 

Я также попытался повторно загрузить ABS и заменить его в свой проект.

Были ли известные проблемы с ABS и IntelliJ? (который, конечно, Android Studio сейчас основан)

Вот несколько ошибок, которые я вижу:

        Java: ...
        Workspace/ActionBarSherlock/src/com/actionbarsherlock/app/SherlockFragment.Java:4: cannot find symbol
        symbol  : class Fragment
        location: package Android.support.v4.app

        Java: ...  Workspace/ActionBarSherlock/src/com/actionbarsherlock/app/SherlockListFragment.Java:4: cannot find symbol
        symbol  : class ListFragment
        location: package Android.support.v4.app

        Java: ...
        Workspace/ActionBarSherlock/src/com/actionbarsherlock/widget/SuggestionsAdapter.Java:33:
        package Android.support.v4.widget does not exist

Любая помощь действительно ценится

Edit: Кажется, что нет проблем с использованием стандартной IntelliJ IDEA. Многие руководства онлайн для настройки с ABS. Также, как упоминал Джейк, он на самом деле разрабатывает эту штуку в IntelliJ.

Вот пример руководства: http://Android-wtf.com/2012/09/how-to-configure-actionbarsherlock-with-intellij-idea/

Тем не менее, я все еще не уверен, почему это не работает в Android Studio

Edit2: решение в ответе ниже. Вкратце: (Я скачал abs последнюю версию, извлек, удалил старую версию abs из моего проекта, затем file > import module... для импорта каталога actionbarsherlock в мой существующий проект. Nb, в моем конкретном случае у меня была проблема с ошибкой компиляции junit, и мне нужно было удалить\test\junit \)

27
wired00

Похоже, что существует много общих проблем при импорте модулей в Android Studio, а не только в ActionBarSherlock, этот ответ также может решить эти проблемы. (Однако последние шаги, связанные с junit, относятся к abs)

Следующие шаги позволили мне запустить ActionBarSherlock без проблем.

1) Загрузите последнюю версию ABS здесь: http://actionbarsherlock.com/

2) Извлеките АБС, у вас там должен быть каталог с именем "actionbarsherlock". Скопируйте это в свою рабочую область Android Studio. и переименуйте в ActionBarSherlock (changed casing) -> Теперь мои проекты Android Studio находятся под \*documents*\Android Workspace\, а не \Eclipse Workspace\

Так что теперь у вас должно быть что-то вроде:

\*documents*\Android Workspace\ActionBarSherlock\

Возможно, вместе с вашим основным проектом:

\*documents*\Android Workspace\TestProject\

3) Откройте Android Studio, загрузите TestProject, затем перейдите File> Import Module... Теперь перейдите к ActionBarSherlock в \*documents*\Android Workspace\ActionBarSherlock\Щелкните Ok и далее до конца. Он спросит, хотите ли вы установить зависимость от нового модуля (или, по крайней мере, мой), нажмите кнопку ОК.

4) на этом этапе при компиляции я получал ошибки в \ActionBarSherlock\test\ с жалобами на Junit. Я просто удалил каталог \Test\ из моего модуля ABS в представлении проекта. Right click \test\ > Delete.... Вы также можете включить файл JAR JIT, но я не думаю, что это необходимо 

5) теперь вы сможете компилировать без ошибок

Надеюсь, это кому-нибудь поможет.

По сути, мне нужно было повторно загрузить совершенно новый ABS, удалить ABS моего старого проекта (который был, вероятно, довольно старым), а затем Импортировать модуль ...

26
wired00

Это работает для меня ..

сначала последовал ответ, предоставленный wired00

и я сделал некоторые изменения отсюда.

Я создал файл build.gradle в проекте библиотеки ActionBarSherlock, сгенерировав файлы сборки Gradle из Eclipse.

отредактируйте build.gradle (для проекта библиотеки ActioBarSherlock), добавьте строку в зависимости {} compile files('libs/Android-support-v4.jar')

отредактируйте build.gradle (для моего проекта), удалите compile files('libs/Android-support-v4.jar') и добавьте compile project(':abs') abs должно быть именем проекта библиотеки ActionBarSherlock.

редактировать settings.gradle, добавить ,':abs'

удалить файлы Android-support-v4.jar, кроме файла в проекте библиотеки ActionBarSherlock

6
Kuool

Я столкнулся с подобной проблемой, но из-за отдельной проблемы я не могу загрузить последнюю версию ActionBarShelock, чтобы исправить проблему, как описано в wired00.

Если вам нужно придерживаться существующей версии ABS, посмотрите, работает ли она для вас:

  1. Нажмите Файл-> Структура проекта.
  2. Вы должны увидеть «ActionBarSherlock» в списке модулей, щелкните по нему. 
  3. Перейдите на вкладку «Зависимости», скорее всего, у вас нет библиотеки поддержки Android v4.
  4. Нажмите кнопку «+» внизу и добавьте Android-support-v4 в качестве зависимости. Если вы импортировали проект из Eclipse, Android Studio, возможно, уже импортировала файл JAR поддержки в виде библиотеки, и вы можете использовать его напрямую. В противном случае вам может понадобиться использовать опцию «jars or directoryies» и выбрать файл поддержки jar из каталога.
  5. Если ваш основной модуль или другие модули также используют библиотеку поддержки, вам может потребоваться изменить настройку «Скомпилировать» на «Предоставлено», если вы получаете ошибки «DEX Already Added».
  6. Вы должны быть в состоянии скомпилировать ваш ABS mobule сейчас. Если вы получаете ошибки компиляции 'hamcrest' или 'junit', вы можете удалить папку 'test' в вашем проекте ABS, как упоминалось в wired00.
2
azgolfer

я также столкнулся с той же проблемой. я даже следую инструкциям, аналогичным импортированию библиотеки ABS. Но я все еще получал ту же ошибку. Наконец, я решил эту проблему. Решение. После выполнения шагов, аналогичных импорту библиотеки ABS, 

  1. Перекомпилируйте ваш проект (щелкните правой кнопкой мыши ваш проект и выберите «Compile Module« YourApp »)
  2. Перекомпилируйте проект библиотеки (щелкните правой кнопкой мыши на проекте библиотеки и выберите «Библиотека модуля компиляции»)

Это оно..

0
Yasir Ali