2010-08-08 9 views
7

he seguido las instrucciones aquí sobre cómo crear un proyecto de biblioteca de Android, y utilizarlo en una aplicación para Android:archivo R.java del proyecto de biblioteca Android no importar a proyecto de aplicación

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

pero es no funciona. Puedo ver que el proyecto de la biblioteca se agrega a mi aplicación, pero no puedo hacer referencia a nada porque no se compilará. El archivo R.java de lib no se está agregando a mi proyecto de aplicación, por lo que el proyecto lib contiene montones de errores, donde quiera que intente hacer referencia a su propio archivo R.java.

No sé si esto tiene algo que ver con eso, pero en la consola hay mensajes que dicen que no hay "ningún identificador de recurso encontrado para el atributo 'X' en el paquete 'Lib Package'. tiene unos pocos atributos de estilo definidos para una vista personalizada que hice, todos los cuales se están quejando en este mensaje de consola. La biblioteca se compila muy bien, y no recibo esos mensajes en la consola hasta que engancho la biblioteca a mi aplicación , así que no sé qué pasa con esto.

Realmente me gustaría hacer que esto funcione. He pasado dos días completos sin obtener ningún resultado. ¡Ofrezca cualquier idea que pueda tener para ayudar!

+0

Tengo el mismo problema y no estoy usando atributos personalizados. Solo quiero que mis bibliotecas R sean visibles en mi aplicación principal. Parece que Eclipse genera el archivo _src correctamente, pero la clase R, generada dentro de la carpeta libraries/gen, no se vincula dentro de mi proyecto principal. ¿Que debería hacer? No quiero vincularlo yo mismo, rompería las cosas más tarde. – Spidey

Respuesta

14

La respuesta En mi acertijo, la biblioteca tenía un archivo attrs.xml que definía algunos atributos personalizados para una vista personalizada que creé. Eliminé attrs.xml y codifiqué los valores en el código de vista personalizada, reconstruí la biblioteca y resolví el problema.

Esto no es genial, sin embargo, lo que esto significa es que las vistas personalizadas con atributos personalizados no se pueden usar en las bibliotecas. Espero que Google solucione esto.

+0

no he utilizado ningún attrs.xml, pero mi aplicación no tiene compilación, ¿cómo puedo referirme a las otras clases de Java (que no se extienden por actividad o servicio o por el receptor) – Sam

+0

@ChristopherPerry ¿Tiene [o usted sabe de] enviado? un informe de error? Estoy de acuerdo, Google debería arreglar esto. Ser incapaz de implementar vistas personalizadas en una biblioteca es completamente absurdo. – AedonEtLIRA

+0

Bueno, puede implementar vistas personalizadas siempre que no intente definir ningún atributo personalizado para usar en su vista. La forma en que estaba usando esta biblioteca es, de todos modos, un poco cuestionable. –

0

En realidad, es una cuestión de duplicidad de archivos. No puede construir un proyecto que contenga más de una instancia del mismo archivo. Debido a la naturaleza de un proyecto de Android, los archivos XML suelen ser los primeros que niegan una compilación exitosa.

+0

Se supone que los recursos deben fusionarse entre sus proyectos de biblioteca y su proyecto de aplicación. Por alguna razón no me importa mirar en el momento, los atributos no se fusionaron. –

+1

* Puedes * crear un proyecto con más de una instancia del mismo archivo, por ejemplo, 'splashscreen_lite.png' y' splashscreen_pro.png'. Como dice @Eitan Schwartz, estos se fusionarán en el tiempo de compilación, con los recursos del proyecto de aplicación teniendo prioridad sobre los recursos del proyecto de la biblioteca. –

Cuestiones relacionadas