Подтвердить что ты не робот

ActionBarSherlock - тип android.support.v4.app.Fragment не может быть разрешен. Это косвенно ссылается на требуемые файлы .class

Я использую ActionBarSherlock как проект библиотеки в проекте, который является самой библиотекой. Все работало нормально, пока я не переместил проект на новый компьютер и не обновил инструменты SDK.

У меня есть эта ошибка, которую я не понимаю. Когда я создаю класс, распространяющий SherlockFragment следующим образом:

import com.actionbarsherlock.app.SherlockFragment;

public class SomeFragment extends SherlockFragment {
    ... 
}

У меня есть следующая ошибка компиляции:

The type android.support.v4.app.Fragment cannot be resolved. It is indirectly referenced from required .class files

Я проверил следующее:

  • ActionBarSherlock импортируется как библиотека
  • Отсутствие видимых ошибок в пути сборки (без красного креста) и actionbarsherlock.jar присутствует
  • Библиотека поддержки находится в проекте ActionBarSherlock и НЕ в других зависимых проектах

Что-нибудь еще?

4b9b3361

Ответ 1

У меня была такая же проблема, как и с тех пор, как я обновил SDK. Я решил свою проблему, выполнив это (на затмении):

  • Щелкните правой кнопкой мыши на панели действий sherlock library = > Properties = > Java Build Path = > Order and Export tab = > проверить android support v4 или Android Private Libraries и выберите Ok
  • Щелкните правой кнопкой мыши на своем личном проекте и перейдите к свойствам = > путь сборки java = > check Android Private Libraries
  • Очистите оба проекта, он должен работать.

Ответ 2

Ответ Себастьяна фактически привел меня к решению. Тем не менее, важно упомянуть, что библиотеку поддержки нужно добавить вручную в путь сборки, чтобы иметь возможность проверить ее на экспорт. Для справки в будущем, вот шаги, которые решили для меня проблему:

  • Убедитесь, что библиотека поддержки находится в папке libs проекта ABS и нигде больше
  • Щелкните правой кнопкой мыши по библиотеке → Путь сборки → Добавить для создания пути
  • Щелкните правой кнопкой мыши проект ABS → Свойства → Путь сборки Java → Заказ и экспорт → Проверьте файл android-support-v4.jar и сохраните
  • Щелкните правой кнопкой мыши проект, в который вы включили АБС → Свойства → Путь сборки Java → Заказ и экспорт → Проверьте "частные библиотеки Android" и сохраните
  • Если у вас есть дополнительные проекты в иерархии зависимостей, выполните шаг 4 для всех этих проектов.
  • Очистите всю рабочую область (или все затронутые проекты) и надейтесь на лучшее.

Однако для меня остается загадкой, почему это должно быть так сложно - как сказал Джош, Eclipse в сочетании с Android и крупными проектами с несколькими зависимостями трудно использовать, и я надеюсь, что это будет улучшено в ближайшем будущем.

Ответ 3

В моем случае я использую 2 библиотеки Android, которые требуют библиотеки поддержки Android. Проблема заключалась в том, что обе библиотеки имели разные версии библиотеки поддержки Android.

Чтобы устранить эту проблему: щелкните правой кнопкой мыши проект библиотеки = > Android Tools = > Добавить библиотеку поддержки.

Повторите это действие для каждой библиотеки.

Ответ 4

У меня была такая же проблема. Было 2 разных библиотеки. Удалить библиотеку поддержки из основного проекта

Ответ 5

Вот простейшее решение:

Щелкните правой кнопкой мыши на папке проекта → Путь сборки → Настроить путь сборки → Добавить внешние банки (со вкладки библиотек) → выберите файл "android-support-v4.jar".

(Он будет находиться в папке Android SDK, вот общий путь "android-sdk\extras\android\support\v4" ).

После этого вы очищаете проект и счастливое кодирование...

Ответ 6

Я столкнулся с той же проблемой в моем случае, я разрешил ее, щелкнув правой кнопкой мыши по проекту → Путь Buid → Настроить путь сборки → "выберите Android из списка слева" → "установите флажок для цели проекта сборки с правой панели" → нажмите Применить → нажмите Ok

Ответ 7

Что сработало для меня, было немного иначе, чем решения @Sebastien и @FleshWound выше в потоке.

  • Скопировал файл "android-support-v4.jar" из/MyProject/libs/и перезаписал файл в /ActionBarSherlock/libs/android -support-v4.jar.
  • Пошел в "Свойства проекта" → "Путь сборки Java" → "Добавить" → Проект ActionBarSherlock.
  • Очистить проект.

Ответ 8

Я использовал Android Studio и столкнулся с аналогичной проблемой (для загрузки ListFragment). Я первоначально импортировал библиотеку:

import android.support.v4.app.ListFragment;

И затем обновленный build.gradle внутри приложения diectory: Убедитесь, что раздел зависимостей включает библиотеки поддержки -

  dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:20.0.0 }

Ответ 9

Я новичок в stackoverflow. Однако это мое решение или опыт здесь. Я решил это по свойствам проекта → "Android" на левой панели → Добавить → Выберите необходимую библиотеку поддержки из выпадающего меню → "Применить" → OK

Это было сделано. Это работало даже тогда, когда "Частные библиотеки Android" не были удалены из "Порядок и экспорт" пути сборки Java.