Intereting Posts
Android – onAttach (Контекст), не вызываемый API 23 Изменение режима местоположения на высокую точность Программно для Android Получить электронную почту facebook после входа в систему на Android Невозможно прочитать файлы изображений из sdcard в phonegap: android Способ хранения большого словаря с низким объемом памяти + быстрый поиск (на Android) Передайте токен доступа Facebook в поле комментариев Android java.lang.RuntimeException: не удалось создать экземпляр активности ComponentInfo Обнаружение вращения главного экрана Android Каковы шаблоны проектирования, используемые в андроиде? Как настроить Wifi-Direct соединение между Android и Linux Android PopupWindow showAsDropDown () не работает должным образом Вводить CSS на сайт с webview в android Kotlin – Самый идиоматический способ преобразования списка в MutableList Mpandroidchart – Как я могу избежать повторных значений в Y-оси? Повторить изображение с помощью ImageView в RelativeLayout

«Open Declaration» в Eclipse переходит к файлам классов вместо исходных файлов для Android-библиотек

У меня есть два Android-проекта «A» и «B». «B» зависит от «A» и является библиотекой. Всякий раз, когда я нахожусь в Project 'B' и нажимаю 'Open Declaration' для исходного файла Java, который находится в 'A', Eclipse переходит к файлу класса вместо исходного файла. Это, конечно, имеет несколько недостатков!

Я взглянул на путь сборки проекта «B», чтобы увидеть, имеет ли ссылка на библиотеку «A» правильный путь к исходному проекту.

Кто-нибудь знает, как это исправить?

Вот файлы .classpath и project.properties для каждого проекта:

ProjectA .classpath

<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath> 

ProjectA project.properties

 # 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 use, # "ant.properties", and override values to adapt the script to your # project structure. # Project target. target=android-8 android.library=true 

ProjectB.classpath

 <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath> к <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath> 

ProjectB project.properties

 # 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 use, # "ant.properties", and override values to adapt the script to your # project structure. # Project target. target=android-8 android.library.reference.1=../ProjectA 

Solutions Collecting From Web of "«Open Declaration» в Eclipse переходит к файлам классов вместо исходных файлов для Android-библиотек"

Вы можете импортировать проект библиотеки не только как Android Lib (так оно и должно быть сделано), но и как связанный проект в обычном меню «Java Build Path». Затем не забудьте перенести этот импорт вверх (по крайней мере, больше, чем запись «Библиотечные проекты») на вкладке «Заказ и экспорт».

Это работает, но это взломать, и это грязно. Это не так, как это должно быть сделано … и когда вы развертываете приложение в телефоне, eclipse напишет сообщение об ошибке в консоли, в котором говорится, что некоторые apk не могут быть найдены …

Тем не менее, я считаю более удобной связь с файлом класса.

Я не знаю, что это происходит. Мои приятели в офисе работают в той же конфигурации, что и я, и у них нет этой проблемы, но, похоже, мы не единственные, у кого есть эта проблема: http://code.google.com/p/android/issues/detail ? ID = 20731

У меня была та же проблема, когда моя версия библиотечного проекта A была в «Свойствах> Путь сборки Java> Библиотеки», но не в «Свойствах> Путь сборки Java> Проекты».

Проблема была решена после того, как я сделал следующее:

  1. Удалите «Библиотечные проекты» из «Свойства> Путь сборки Java> Библиотеки», который был добавлен в «Свойства> Путь сборки Java> Библиотеки» (я не уверен, нужен ли этот шаг, но это то, что я сделал).
  2. Добавьте проект A в «Свойства> Путь сборки Java> Проекты».
  3. Перезапустите Eclipse (Индиго). Как-то Eclipse воссоздает проекты библиотеки в «Свойствах> Путь сборки Java> Библиотеки"

Класс .classpath должен иметь следующее:

 <classpathentry combineaccessrules="false" kind="src" path="/A"/> 

Фактически, переход к файлам классов был не самым раздражающим, но разбиение файлов классов вместо java-файлов во время отладки сводило меня с ума до того, как эта проблема была решена.

Что сработало для меня: перемещение проектов lib на вкладке « Заказ и экспорт » – прямо под /src и /gen основного проекта.

Мое первое предположение заключалось в том, что у вас есть JAR с классами A в нем на пути сборки B. Перейдите на вкладку «Библиотеки». Можете ли вы показать нам свои файлы .classpath и project.properties?

Для меня работает следующее решение:

Перейдите в проект библиотеки Android (в вашем случае это A) -> Java Build Path -> Order and Export, убедитесь, что первая запись является исходной папкой библиотеки (A). Затем очистите проект библиотеки и целевой проект. Теперь все работает отлично.