Я выполнил приведенные здесь инструкции о том, как создать проект библиотеки Android и использовать его в приложении Android:

http://developer.android.com/guide/developing/eclipse-adt.html

Но это не работает. Я вижу, что проект библиотеки добавлен в мое приложение, но я не могу ссылаться ни на что в нем, потому что он не собирается. Файл R.java из библиотеки НЕ добавляется в мой проект приложения, поэтому проект lib содержит массу ошибок, везде он пытается ссылаться на свой собственный файл R.java.

Я не знаю, имеет ли это какое-либо отношение к этому, но в консоли есть сообщения о том, что для атрибута «X» в пакете «Lib Package» не найден идентификатор ресурса. В моем библиотечном пакете есть несколько стилизованных атрибуты, определенные для созданного мной настраиваемого представления, на все из которых жалуются в этом сообщении консоли. Библиотека создается отлично, и я не получаю эти сообщения в консоли, пока не подключу библиотеку к своему приложению, поэтому я не Не знаю, что с этим делать.

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

7
Christopher Perry 8 Авг 2010 в 04:45
У меня такая же проблема, и я не использую настраиваемые атрибуты. Я просто хочу, чтобы мои библиотеки R были видны в моем основном приложении. Кажется, что Eclipse правильно генерирует файл _src, но класс R, созданный внутри папки library / gen, не связывается внутри моего основного проекта. Что я должен делать? Я не хочу связывать это сам, это все сломает позже.
 – 
Spidey
29 Окт 2010 в 01:54

2 ответа

Лучший ответ

Ответом на мою загадку было то, что в библиотеке был файл attrs.xml, который определял несколько настраиваемых атрибутов для созданного мной настраиваемого представления. Я удалил attrs.xml и жестко запрограммировал значения в пользовательском коде представления, перестроил библиотеку и проблема решена.

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

14
Christopher Perry 8 Авг 2010 в 08:19
Я не использую attrs.xml, но мое приложение не получает сборки, как я могу ссылаться на другие классы java (которые не расширяются действием, службой или получателем)
 – 
Sam
2 Сен 2011 в 11:42
Вы [или знаете] отправили ли вы отчет об ошибке? Я согласен, Google должен это исправить. Неспособность реализовать собственные представления в библиотеке совершенно бессмысленна.
 – 
ahodder
20 Апр 2012 в 20:09
Что ж, вы можете реализовать настраиваемые представления, если не пытаетесь определить какие-либо настраиваемые атрибуты для использования в своем представлении. В любом случае, то, как я использовал эту библиотеку, немного сомнительно.
 – 
Christopher Perry
21 Апр 2012 в 10:42

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

0
Eitan Schwartz 19 Июл 2012 в 11:57
Предполагается, что ресурсы будут объединены между вашими проектами библиотеки и вашим проектом приложения. По какой-то причине я сейчас не хочу разбираться, атрибуты не сливались.
 – 
Christopher Perry
20 Июл 2012 в 21:15
1
Вы можете создать проект с более чем одним экземпляром одного и того же файла - например, splashscreen_lite.png и splashscreen_pro.png. Как говорит @Eitan Schwartz, они будут объединены во время сборки, при этом ресурсы проекта приложения будут иметь приоритет над ресурсами проекта библиотеки.
 – 
Carlos P
25 Янв 2013 в 12:20