В eclipse невозможно ссылаться на проект библиотеки android в другом проекте android
когда я писал этот вопрос, мне удалось решить его, поэтому повторите его здесь на благо других. Вот начальная проблема:
Я создал очень простой проект библиотеки, который я хочу ссылку на другой проект. Я сделал это раньше без проблем, так что не совсем уверен, почему он не работает в этот раз. У меня есть:
пометил проект библиотеки через свойства проекта. Элемент этот набор :
android.library=trueв моем другом проекте добавлена ссылка на мой проект библиотеки через свойства проекта. Элемент
default.propertiesфайл имеет ссылку добавлена, как ожидалось ieandroid.library.reference.1=K:/android_test_ws/applicationRegistrarзеленая галочка против проекта библиотеки ссылок начинается с зеленого, а затем изменяется на красный крест.
это означает, что должно быть что-то не так / отсутствует в проекте библиотеки, но я не знаю, что. Мой библиотечный проект по этому поводу случай намного проще, чем предыдущий, который я создал.
18 ответов:
ОК, Вот решение, которое я нашел, когда я искал по умолчанию.properies файл проекта ссылки (не библиотека) в моей файловой системе. Хотя ссылочный проект находился в той же рабочей области eclipse, что и проект библиотеки, фактические файлы находились где-то еще в файловой системе, т. е. они не были в той же родительской папке проекта библиотеки. Как только я поместил ссылочный проект в ту же физическую папку, что и проект библиотеки, все пошло штраф.
Я думаю, что это должно быть что-то делать с android, используя ant под обложками.
изменить: имя проекта должно совпадать с именем папки в файловой системе. То, что вы видите в свойствах проекта->Android->ссылка на библиотеку-это относительный путь к файловой системе.
убедитесь, что оба проекта находятся в одном рабочем пространстве. Для этого при импорте проектов убедитесь, что установлен флажок" копировать проект в рабочее пространство".
та же проблема возникает, если проект библиотеки находится в другом разделе от текущей рабочей области. У меня сейчас такая же проблема. Мой источник git находится в C: и я просто перемещаю свое рабочее пространство В D: и все начинает рушиться.
самый простой способ получить правильные пути к библиотекам - использовать графический интерфейс от Eclipse для добавления библиотеки, как показано на следующем снимке экрана, и позволить Eclipse позаботиться о том, чтобы поместить правильные относительные пути в проект.свойства. Его общая настройка для размещения ваших библиотечных проектов в каталогах значительно отличается от ваших основных проектов, которые используют библиотеку. Этот метод будет работать, если "проект libary" и проект, использующий его, находятся в одном рабочем пространстве eclipse (они "не должны" быть в той же родительской папке):
убедитесь, что проект библиотеки помечен как "библиотека Is" - щелкните правой кнопкой мыши на проекте библиотеки - свойства - Android - отметьте флажок "библиотека Is" - в проекте.свойства проекта библиотеки у вас должна быть новая запись:"android.библиотека=правда. Теперь добавьте его в проект, который вы хотите, как описано в сообщении ниже.(пост с интегрированным изображением-от Нилеша Павара).
еще одно замечание по тому же вопросу.
для меня два проекта, где на одной родительской папке, и были локальными внутри рабочего пространства. Даже тогда проблема все еще происходила.
я редактировал проект".свойства " файл и поставить абсолютный путь (с косой чертой '/' для разделителя) проекта библиотеки. Сохранил и закрыл его. Затем перешел в диалоговое окно свойств проекта, удалил библиотеку(которая все еще показывала значок креста, но с АБС путь) и добавил его обратно, как обычно. Удивительно, но проблема решена, и проект компилируется и запускается.
Это действительно странно и должно быть ошибка с ADT. Я использую ADT версии 20.0.2
когда разработчик ссылается на проект facebook или любой другой проект библиотеки, сначала очистите проект от eclipse->project->clean project. что хотите разрешить ошибку Красного Креста в ссылочном экране.
для меня я просто перезапускаю eclipse, и добавленная библиотека работает нормально.
Я имею в виду первый раз, когда он показывает красные метки после добавления проекта библиотеки. Хотя основной проект eclipse и проект библиотеки находятся в одной папке рабочей области, а файлы ресурсов не находятся за пределами папки проекта.
Итак, вы можете попробовать перезапустить eclipse. Счастливое кодирование....
обходной путь для меня был
- создать новое рабочее пространство
- импорт проекта Библиотеки в этой рабочей области
- импортируйте нужный проект в эту рабочую область
- имея как проект, так и библиотечный проект одной и той же целевой версии ОС Android
- проект справочной библиотеки в моем проекте
решить мою проблему
У меня была та же проблема, когда я пытаюсь изменить свое рабочее пространство, так что это мое решение:
- импорт и копирование всех данных проекта, включая проект библиотеки в рабочую область
- удалите старую ссылку на проект, щелкнув правой кнопкой мыши по проекту-- > свойства-- > Android-->библиотека, и выберите поврежденную библиотеку (так что waht я называю ее) и выберите Удалить
- сначала очистите проект (чтобы обновить свойства проекта ur)
- перейти к проекту библиотеки Свойства-- > Android-- > библиотека и проверьте библиотеку is, если она не нажимает кнопку Применить, то OK
- если проект библиотеки Библиотека уже проверена, сначала снимите флажок, а затем очистите проект библиотеки после этого снова выполните шаг 4
- перейдите в проект, в котором вы хотите, чтобы библиотека была, затем щелкните правой кнопкой мыши по проекту- > свойства- > Android- > библиотека, добавьте, затем выберите проект библиотеки (он должен быть там) и нажмите кнопку Применить, а затем OK
- если все еще не отображается очистите проект еще раз, и это должно сделать
когда вы смотрите на ссылочный путь до и после, он исходит из т. е. "C:/workspace/mylib" и идет к"../../mylib " при копировании в нужное место, довольно интересно.
к твоему сведению,
Что сработало для меня, так это удалить проекты "библиотеки" (фактические проекты) из моей рабочей области (без удаления файлов), а затем повторно импортировать их с помощью мастера (импортировать существующий проект android из исходного кода).
Спасибо за размещение вопроса. У меня была точно такая же проблема при интеграции Facebook с моего приложения для Android. Я исправил проблему, переместив свой проект разработки на тот же диск Windows, на котором был расположен проект библиотеки. Каким-то образом Eclipse не может правильно прочитать местоположение проекта библиотеки из по умолчанию.свойства файл, если он находится на другом диске.
подобно сообщению Суфи хана я также решил эту проблему с перезагрузкой. Мой случай отличался тем, что когда я впервые обратился к свойствам->Android и добавил библиотеку, я получил прекрасную зеленую галочку. Когда я закрыл диалоговое окно Eclipse все еще показывал ошибки типа class-not-found. Когда я снова проверил свойства, я увидел красный X. Но решение г-на Кана (удалите плохую lib, перезапустите Eclipse, снова добавьте lib) работало нормально.
Я использую версию 0702 пакета ADT (запускает с "кластером", рифмуется с"уткой").
Я последовал принятому ответу, но также должен был убедиться, что мой "проект.свойства " файл был доступен для чтения.
Если файл только для чтения (зарегистрирован в системе управления версиями) eclipse не будет его редактировать. Добавление ссылки на библиотеку будет успешным, но изменение не будет сохранено после нажатия кнопки ОК.
Если закрытие окна настроек и повторное открытие снова удаляет библиотеку, которую вы только что добавили, это может быть вашим решением.
если ваш проект библиотеки все еще не отображается попробуйте добавить флаг библиотеки в свойствах проекта библиотеки
добавить android.библиотека=истина
.свойства
# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system edit # "ant.properties", and override values to adapt the script to your # project structure. # # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-17 android.library=true

Comments