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 и НЕ в других зависимых проектах
Что-нибудь еще?
Ответы
Ответ 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.