Добавление библиотеки / баночки в проект Eclipse Android

StackOverflow https://stackoverflow.com/questions/3642928

Вопрос

Это вопрос из двух частей о добавлении сторонней библиотеки (JAR) в проект Android в Eclipse.

Первая часть вопроса в том, когда я пытаюсь добавить стороннюю банку (библиотеку) в мой проект Android, я сначала возьми проблему

Ошибка разборки XML: несвязанный префикс

Потому что я пытаюсь использовать класс из этой банки (и нужен префикс как-то определен). В чем дело?

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

Вызвано: java.lang.classnotfoundException: com.gitub.droidfu.widgets.webimageView ...

Почему, когда я не получаю никакой компиляции или ссылки на ошибку в Eclipse, у него есть эта проблема на эмуляторе?

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

Это было полезно?

Решение

Теперь для пропущенной проблемы классов.

Я разработчик ECLIPSE Java EE и был в привычке на протяжении многих лет добавления сторонних библиотек через механизм «библиотеки пользователя» в пути сборки. Конечно, есть как минимум 3 способа добавить стороннюю библиотеку, тот, который я использую, является наиболее элегантным, в моем скромном мнениях.

Это не будет работать, однако, для Android, чей Dalvik «JVM» не может обрабатывать обычный класс скомпилированным Java, но должен был преобразовать его в специальный формат. Это не происходит, когда вы добавляете библиотеку в том, как я не буду делать этого.

Вместо этого следуйте инструкциям (широко доступным) инструкциям по импорту сторонней библиотеки, затем добавляя его с помощью пути сборки (что делает его известным в Eclipse для целей компиляции). Вот пошаговый:

  1. Загрузите библиотеку в свою систему развития хоста.
  2. Создать новую папку, лимина, в вашем проекте Eclipse / Android.
  3. Щелкните правой кнопкой мыши лимина И выберите импорт -> General -> файловую систему, затем следующую, просмотрите в файловую систему, чтобы найти родительский каталог библиотеки (т. Е. Где вы загрузите его).
  4. Нажмите OK, затем щелкните имя каталога (не флажок) на левой панели, а затем проверьте соответствующую банку на правой панели. Это ставит библиотеку в ваш проект (физически).
  5. Щелкните правой кнопкой мыши на вашем проекте, выберите путь сборки -> Настроить путь сборки, затем щелкните вкладку «Библиотеки», затем добавьте JARS ..., перейдите к новой банке в лимина каталог и добавить его. (Это, кстати, это момент, когда ваша новая банка преобразуется для использования на Android.)

ПРИМЕЧАНИЕ

Шаг 5 может не понадобиться, если LIB уже включен в ваш путь сборки. Просто убедитесь, что его существование сначала перед добавлением его.

То, что вы сделали здесь, достигают две вещи:

  1. Включает в себя преобразованную Dalvik-преобразованную банку в вашем проекте Android.
  2. Делает определения Java доступными для Eclipse, чтобы найти сторонние классы при разработке (то есть компиляции) исходного кода вашего проекта.

Другие советы

Убедитесь, что ваши 3-й банки для вечеринок находятся в ваших проектах «Libs», и они будут помещены в .apk, когда вы упаковываете свое приложение. Вы можете увидеть ошибки времени выполнения на устройстве, если что-то в банке не поддерживается, но кроме того, у меня был большой успех с этим.

Настройка библиотечного проекта

Библиотечный проект - это стандартный проект Android, поэтому вы можете создать новый так же, как и новый проект приложений.

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

Далее установите свойства проекта, чтобы указать, что это библиотечный проект:

В проводнике пакета щелкните правой кнопкой мыши библиотечный проект и выберите «Свойства». В окне «Свойства» выберите группу свойств «Android» слева и найдите свойства библиотеки справа. Установите флажок «IS Library» и нажмите «Применить». Нажмите OK, чтобы закрыть окно свойств. Новый проект теперь отмечен как библиотечный проект. Вы можете начать движущийся исходный код и ресурсы в него, как описано в разделах ниже.

Если вы используете ADT версии 22, вам необходимо проверить зависимости в андроид и частные библиотеки Android на вкладке «Заказ и экспорт» в пути сборки проекта

Во-первых, проблема отсутствующего префикса.

Если вы потребляете что-то в своем файле макета, который поставляется с третьей стороны, вам может потребоваться потреблять его префикс, как и что-то вроде «DROIDFU:», которое происходит в нескольких местах в конструкции XML ниже:

<com.github.droidfu.widgets.WebImageView android:id="@+id/webimage"
          android:layout_width="75dip"
          android:layout_height="75dip"
          android:background="#CCC"
          droidfu:autoLoad="true"
          droidfu:imageUrl="http://www.android.com/images/opensourceprojec.gif"
          droidfu:progressDrawable="..."
          />

Это выходит из банки, но вам также нужно добавить новые «XMLNS: DROIDFU»

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:droidfu="http://github.com/droidfu/schema"
      ...>

Или вы получаете ошибку несвязанного префикса. Для меня это было неспособность скопировать и вставить весь поставляемый пример с страниц сторонних библиотек.

Ошибка разборки XML: несвязанный префикс

Ресурс '/ playdeddy / res' не существует.

Я получил вышеописанные два ошибки и, наконец, я решил его.

Щелкните правой кнопкой мыши ваш проект -> Свойства -> Путь сборки Java Build -> GoogleAdmobadsdk (выберите и поставить его наверх), то вы работаете и проблему решены. Решается моя ошибка времени выполнения.

Поместите источник в папке за пределами Yourt Workspace. Rightclick в проекте-проводнике и выберите «Импорт ...»

Импортируйте проект в рабочем пространстве в качестве проекта Android. Попробуйте построить его и убедиться, что он помечен как проект библиотеки. Также убедитесь, что он построен с поддержкой Google API, если нет, вы не получите компиляционные ошибки.

Затем в правой кнопкой мыши на вашем главном проекте в проводнике проекта. Выберите свойства, затем выберите Android слева. В разделе «Библиотека» ниже нажмите «Добавить» ..

Библиотека MapView-Balloons теперь должна быть доступна для добавления к вашему проекту.

Перейдите в построить путь в Eclipse, затем нажмите Заказ и экспортируйте, затем проверьте библиотеку / банку, а затем нажмите кнопку вверх, чтобы переместить его в верхнюю часть списка, чтобы сначала скомпилировать его.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top