Нет android support library

Полный список

— разбираемся, зачем нужна библиотека Support Library
— на примере фрагментов используем библиотеку v4

Support Library – библиотека, которая на старых версиях Android делает доступными возможности новых версий. Например, фрагменты появились только в третьей версии (API Level 11). Если вы хотите использовать их в своем приложении, это приложение не будет работать на более старых версиях Android, т.к. эти старые версии никогда не слышали про класс android.app.Fragment. Какие тут есть выходы?

1) Добавить в код проверку версии системы и в зависимости от результата выполнять тот или иной код. Т.е. если версия 11 и выше, используем фрагменты, иначе Activity. Вполне выполнимо, но не совсем просто. Можно ошибиться и запутаться. Т.е. при запуске приложения на старых версиях приходится либо отказываться от новшеств и пользоваться тем, что есть, либо изобретать велосипед и реализовывать новшества самому.

2) Можно забить на старые версии и позиционировать свое приложение только для новых версий. Тогда теряется ощутимая часть потенциальных пользователей вашей программы. На момент написания этого материала на версии Android ниже третьей сидит 69,7% пользователей. Ощутимая такая потеря получится — больше, чем две трети! Конечно, со временем все перейдут на третью и последующие версии, и смогут использовать ваше приложение. Но к тому времени выйдут новые версии Android с новыми возможностями, вы их реализуете в своем приложении и, тем самым, снова отсеете часть пользователей. В общем, вырисовывается постоянная дискриминация пользователей по версии.

3) Использовать библиотеку Support Library. Она содержит классы — аналоги новшеств последних версий, которые будут работать на старых версиях.

На данный момент есть две библиотеки v4 и v13. Цифра здесь указывает минимальный API Level на котором можно использовать эту библиотеку. Т.е. приложение, использующее v4, может быть запущено на API Level >= 4 и ему будут доступны новшества, которые входят в эту библиотеку (например, фрагменты).

Библиотеки эти периодически обновляются, в них добавляются новые классы, реализующие новые возможности. Так что, если вы не нашли в них сейчас то, что вам нужно, вполне возможно, что это появится в будущем. Самый яркий пример – ActionBar. Его, к сожалению, в v4 пока нет. И я, честно говоря, не знаю, появится ли. Умельцы пишут свои аналоги, т.е. реализуют первый вариант из рассмотренных нами выше и предоставляют нам возможность использовать его, как третий вариант. Ведь мы вовсе не обязаны ограничиваться стандартной Support Library от гугла. Можно использовать и другие библиотеки от других разработчиков. Самая популярная реализация ActionBar – это ActionBarSherlock.

Разобрались с тем, что такое Support Library и зачем она нужна. Теперь посмотрим, как ее использовать. Работать будем с v4.

Если у вас библиотека загружена, а версия ADT одна из последних, то Eclipse сам автоматически добавит в проект эту библиотеку. И вы сразу после создания нового проекта сможете ее использовать.

Читайте также:  Почему не включается андроид ксиоми

Если не все так радужно, то надо скачать и добавить самим. Несложный и недолгий процесс. На официальном сайте есть инструкция. И я здесь просто напишу перевод этой инструкции со своими дополнениями. Но не спешите все это проделывать! Возможно, вам это не понадобится.

Чтобы загрузить библиотеку:

Откройте SDK Manager, найдите там Android Support Library и установите ее

Библиотека v4 загрузится в папку: /extras/android/support/v4/android-support-v4.jar

Чтобы добавить библиотеку в ваш проект:

В проекте создайте папку libs. Он должна быть в корне, на том же уровне, что и res, bin и прочие. Поместите в папку libs загруженную библиотеку android-support-v4.jar. Далее, правой кнопкой на этой библиотеке в папке libs, и в контекстном меню Build Path > Add to Build Path.

Обновите манифест, указав в нем, что минимальная требуемая версия для вашего приложения – API Level 4.

При создании нового проекта проверьте — если папка libs с библиотекой в проекте есть, то выше приведенная инструкция вам не нужна.

Из рассмотренных нами в прошлых уроках классов, библиотека содержит Fragment, FragmentManager, FragmentTransaction, ListFragment, DialogFragment.

Полный список объектов можно посмотреть, открыв API на сайте. Вот основной пакет — android.support.v4.app. Слева видны остальные.

Напишем простейший пример использования фрагмента в приложении для API Level 10.

Project name: P1141_SupportLibrary
Build Target: Android 2.3.3 (не 4.1 . )
Application name: SupportLibrary
Package name: ru.startandroid.develop.p1141supportlibrary
Create Activity: MainActivity

Сначала layout fragment.xml:

Пустой красный LinearLayout.

Далее создаем класс — MyFragment. Если мы сделаем это по старинке, наследуя android.app.Fragment, то в созданном классе получим ошибку The import android.app.Fragment cannot be resolved. И это логично, т.к. в Android 2.3.3 (API Level 10) нет такого класса.

И, собственно, именно тут и пригодится нам библиотека v4. Будем наследовать ее класс android.support.v4.app.Fragment при создании фрагмента

Только FrameLayout, который будет контейнером для фрагмента.

Далее есть один нюанс. Чтобы в старой версии Android использовать фрагменты из Support Library, нам необходимо использовать не стандартное Activity, а также из библиотеки – android.support.v4.app.FragmentActivity.

В коде видим еще одно отличие. FragmentActivity использует метод getSupportFragmentManager (а не getFragmentManager) для получения FragmentManager. В остальном, работа с фрагментами не будет отличаться от прошлых уроков. Различие будет только в секции import. Если раньше было, например так:

import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
(это работает только на новых версиях)

то с использованием v4 будет так:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
(это будет работать и на старых и на новых версиях)

Цель проста — работоспособность вашего приложения на старых версиях, которые ничего не знают про фрагменты. Старые версии будут использовать для работы с фрагментами классы библиотеки v4. Но, разумеется, этот код без проблем сработает и на последних версиях Android.

Все сохраняем, запускаем приложение и видим работающий фрагмент на Android версии 2.3.3

Ради интереса запустим его же на Android 4.1

Читайте также:  Фонарик с камерой для android

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

На следующем уроке:

— учитываем ориентацию и размер экрана в работе приложения

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме

Источник

Web and Mobile Programming

Core Java, Java EE, GWT, GXT, EXT GWT, JavaScript, CSS, HTML, jQuery, jQuery Mobile, PhoneGap, iOS, Android, GAE, Python

Поиск по этому блогу

суббота, 8 февраля 2014 г.

Android. Подключаем библиотеку Support Library

Support Library – библиотека, позволяющая устройствам со старыми версиями Android использовать функции из новых версий. Но что делать, если мы хотим использовать в своем приложении элементы, которые поддерживаются только в новых версиях Android, то тогда нам необходимо использовать эту библиотеку. Библиотека содержит классы, которые являются аналогами классов из новых версий Android.

Для того чтобы загрузить библиотеку необходимо запустить Android SDK Manager

Библиотека будет загружена в папку [Android SDK]\extras\android\support\v4

Я работаю над проектами в Intellij Idea поэтому расскажу как подключить библиотеку в ней. Для того, чтобы добавить библиотеку в проект в корне проекта на одном уровне с папками src и res необходимо создать папку libs, если ее еще не существует. В папку libs необходимо скопировать библиотеку android-support-v4.jar. Для того, чтобы подключить библиотеку Support Library к проекту нужно нажать правой кнопкой по файлу android-support-v4.jar и в меню выбираем «Add as library. «.

В последнем моем приложении с обоями я подключал эту библиотеку

Источник

Как вручную установить вспомогательные библиотеки Android, необходимые для пакетов Xamarin.Android.Support?

Примеры шагов для Xamarin.Android.Support.v4

Загрузите нужный пакет NuGet для Xamarin.Android.Support (например, установите его с помощью диспетчера пакетов NuGet).

используйте ildasm , чтобы проверить, какая версия ildasm требуется для пакета NuGet.

Выходные данные примера:

Скачайте android_m2repository.zip из Google, используя URL-адрес, возвращенный программой Ildasm. Кроме того, вы можете проверить версию репозитория поддержки Android, установленного в настоящее время, в диспетчере SDK Android:

Если версия совпадает с версией, необходимой для пакета NuGet, вам не нужно загружать ничего нового. Вместо этого можно повторно заархивировать существующий каталог m2repository , расположенный в папке Екстрас\андроид в пути пакета SDK (как показано в верхней части окна диспетчера пакет SDK для Android).

Вычислите хэш MD5 URL-адреса, возвращенного из ildasm. Отформатируйте результирующую строку, чтобы использовались только прописные буквы без пробелов в строке. Например, $url при необходимости измените переменную, а затем выполните следующие 2 строки (на основе $url ) в PowerShell:

Выходные данные примера:

Скопируйте android_m2repository.zip в папку %локалаппдата%\ксамарин\зипс\ . Переименуйте файл, чтобы использовать хэш MD5 из предыдущего шага вычисления хэша MD5. Пример:

Читайте также:  Андроид авто как подключить тойота рав 4

% LOCALAPPDATA% \Xamarin\zips\F16A3455987DBAE5783F058F19F7FCDF.zip

Используемых Распакуйте файл в %LocalAppData%\Xamarin\Xamarin.Android.support.v4\23.4.0.0\content\ (создание подкаталога content\m2repository ). Если пропустить этот шаг, то первая сборка, использующая библиотеку, займет немного больше времени, так как потребуется выполнить этот шаг. Номер версии для подкаталога (23.4.0.0 в этом примере) не совпадает с версией пакета NuGet. Чтобы найти правильный номер версии, можно использовать ildasm :

Выходные данные примера:

Загрузите нужный пакет NuGet для Xamarin.Android.Support (например, установите его с помощью диспетчера пакетов NuGet).

Дважды щелкните сборку Xamarin.Android.Support.v4 в разделе Ссылки проекта Android в Visual Studio для Mac, чтобы открыть сборку в обозревателе сборок. Убедитесь, что для раскрывающегося списка Язык выбрано значение C# , и выберите сборку Xamarin.Android.support.v4 в обозревателе сборок. Выберите свойство SourceUrl в одном из атрибутов IncludeAndroidResourcesFrom или JavaLibraryReference :

Скачайте android_m2repository.zip из Google с помощью команды, полученной от Ildasm. Кроме того, вы можете проверить версию репозитория поддержки Android, установленного в настоящее время, в диспетчере SDK Android:

Если версия совпадает с версией, необходимой для пакета NuGet, вам не нужно загружать ничего нового. Вместо этого можно повторно заархивировать существующий каталог m2repository, расположенный в разделе extras/android в путь_к_пакету_SDK (как показано в верхней части окна Диспетчера SDK Android).

Вычислите хэш MD5 URL-адреса, возвращенного из ildasm. Отформатируйте результирующую строку, чтобы использовались только прописные буквы без пробелов в строке. Например, при необходимости исправьте строку URL-адреса, а затем выполните следующую команду в командной строке Terminal.app:

Другой вариант — использовать csharp интерпретатор для выполнения того csharp . Для этого измените url переменную по необходимости, а затем выполните следующую команду в командной строке url :

Выходные данные примера:

Скопируйте android_m2repository.zip в папку $Home/.локал/шаре/ксамарин/зипс/ . Переименуйте файл, чтобы использовать хэш MD5 из предыдущего шага вычисления хэша MD5. Пример:

$HOME/.local/share/Xamarin/zips/F16A3455987DBAE5783F058F19F7FCDF.zip

(Необязательно) распакуйте файл в:

$HOME/.local/share/Xamarin/Xamarin.Android.Support.v4/23.4.0.0/content/

(создавая подкаталог content/m2repository). Если пропустить этот шаг, то первая сборка, использующая библиотеку, займет немного больше времени, так как потребуется выполнить этот шаг.

Номер версии для подкаталога (23.4.0.0 в этом примере) не совпадает с версией пакета NuGet. Как и на шаге ildasm ранее, чтобы найти правильный номер версии, можно использовать обозреватель сборок в Visual Studio для Mac. Найдите свойство Version в одном из атрибутов IncludeAndroidResourcesFrom или JavaLibraryReference :

Дополнительные ссылки

  • Ошибка 43245 — неточные сообщения об ошибках «Загрузка не выполнена. Скачайте <0>и вставьте его в <1>каталог. «и» установите пакет: » <0>» доступно в установщике пакета SDK «сообщения об ошибках, связанные с пакетами Xamarin. Android. support.

Next Steps

В этом документе рассматривается текущее поведение по состоянию на август 2016 года. Методика, описанная в этом документе, не является частью стабильного набора тестов для Xamarin, поэтому в будущем ее поддержка может прерваться.

Чтобы получить дополнительную помощь, связаться с нами или если проблема остается даже после использования указанных выше сведений, сведения о способах связи, предложениях, а также о том, как при необходимости сообщить о новой ошибке, см. здесь.

Источник

Оцените статью