2012-01-02 5 views
5

Я пытаюсь использовать phonegap внутри проекта библиотеки андроида. Проект библиотеки компилируется нормально, но когда я пытаюсь начать деятельность, которая простирается DroidGap, я получаю эту ошибкуКак включить файлы jar в проект библиотеки андроида

01-02 10:12:17.575: W/dalvikvm(316): Unable to resolve superclass of Lcom/***/***. 

Я думаю, что это происходит потому, что файл phonegap.jar не входят в составленной банке файл андроида проект библиотеки. Я пробовал использовать ant для сборки, но он не работает.

Редактировать: Я создаю андроидную библиотеку, которая может быть использована в других проектах Android. Я использую стандарт android library project, но действия в этом проекте lib, которые расширили класс DroidGap в phonegap.jar, сбой при вышеуказанной ошибке.

+0

это: HTTP: // StackOverflow.com/a/6859020/28557 –

+1

кажется, что большинство людей не понимает, что ваш внешний JAR находится в проекте библиотеки, а затем, когда вы пытаетесь ссылаться на свой проект библиотеки из другого проекта Android, он не может видеть файлы JAR что проект библиотеки зависит от того, что у меня схожие проблемы, только более сложные, потому что мой JAR-файл является интерфейсом aJNI для некоторых родных классов C, которые я также хочу разделить на несколько проектов! –

ответ

0

создать одну папку 'lib' в вашем проекте. поместите ваш .jar-файл в папку lib. выберите нужный файл .jar, выберите путь buid ---> 'add to build'. добавит ваш .jar-файл. теперь вы можете использовать эти классы .jar-файлов.

+0

Я уже делаю это, но это, похоже, не помогает. Я думаю, что отлично работает, когда вы имеете дело с обычным проектом Android, но в том числе файлы jar в проекте библиотеки Android не работают. – Ashok

+0

Я испытал и смог добавить и использовать классы библиотеки телефонной книги, как указано выше. –

+0

Есть два проекта, которые я использую, один - проект андроида, а другой - проект андроидной библиотеки. Мне нужно включить phonegap.jar в проект библиотеки Android. Проект android использует проект андроидной библиотеки и запускает деятельность в проекте андроида lib, это, похоже, приводит к краху вещей. Вы делаете то же самое, это работает для вас? – Ashok

0

Я бы посоветовал не создавать папку «lib» вручную.

Вместо:

Щелкните правой кнопкой мыши проект -> Свойства -

  • Выберите Java Build Path

  • Убедитесь Библиотеки является выбранная вкладка в верхней

  • Нажмите Добавить внешние JARs

Затем найдите свой файл JAR ...

В принципе, так же, как вы, возможно, добавили PhoneGap.jar

+0

Вы предлагаете не связывать проект библиотеки андроида, а со ссылкой на файл jar, созданный проектом библиотеки. Я не понимаю, как это поможет. Я попробовал это, и он, похоже, не помогает – Ashok

+0

Вам нужно будет отредактировать свой вопрос и объяснить больше с более подробной информацией ... Я не совсем понимаю, что вы пытаетесь сделать. Если вы связываетесь с другим проектом библиотеки, который все еще будет работать, вы связали бы эту библиотеку, а затем добавили бы PhoneGap.jar так, как я описал. – TryTryAgain

0

АДТ (Android Development Tool для Eclipse плагин) имеет встроенную поддержку для создания и ссылки на библиотечные проекты. См. Пример в разделе 5 этого tutorial.

0

Попробуйте изменить имя папки в libs вместо lib.

+0

Папка «libs» автоматически включает JAR в проект, в котором они находятся. Но все равно они не будут включаться автоматически, если они находятся только в каталоге libs совместного проекта. –

3

Я боюсь, что это еще не возможно. Результат jar-файла будет содержать все классы и ресурсы, определенные в проекте библиотеки Android, но не будет включать внешние файлы jar, добавленные в путь сборки. Вам нужно будет добавить их в свои окончательные проекты Android, используя эту библиотеку. Вы также можете найти подобные вопросы в SO как this one

+0

Связанный вопрос/ответ объясните более подробно. Но в основном проекты Shared Library - это простые контейнеры и обертки. В конце концов, это просто наполняет источник и ресурсы потребляющим проектом; он не копируется в настройках или ссылках библиотек, поэтому их необходимо скопировать в проект потребления вручную. –

Смежные вопросы