2011-01-30 16 views
34

Tengo un Android Library Project que contiene varios estilos/temas definidos en su archivo styles.xml.Al usar un Proyecto de biblioteca de Android, ¿cómo hace referencia a los recursos xml correctamente?

Normalmente, al hacer referencia a este estilo de alguna otra disposición XML o archivo de manifiesto, usted acaba de escribir android:theme="@style/TheNameOfTheStyle"

Cuando se utiliza un proyecto de biblioteca, ¿cómo el proyecto depende de referencia adecuadamente ese estilo ahora? Solo dejándolo como android:theme="@style/TheNameOfTheStyle" me da un error al decir que no se ha encontrado ningún recurso que coincida con ese nombre.

supongo que esta misma pregunta se aplica para otras referencias como @string, etc. @color

, gracias

Editar: Ok por lo que parece que se supone que debe hacer referencia a ella como normal, pero la consola de Eclipse me está dando este error:

Error: No resource found that matches the given name (at 'theme' with value '@style/ThemeName').

(facepalm) Editar

Solo necesitaba "limpiar proyecto" en Eclipse. Ahora funciona.

+0

En un libro androide estoy leyendo lo que dice puede/debe referirse al otro recurso como @ [nombre_del_paquete.] tipo/id donde el nombre del paquete si se omite si es el paquete de la aplicación actual, y puede usar el nombre de la página de su proyecto de biblioteca. PERO, no funciona para mí, tampoco lo hace la limpieza del proyecto y la reconstrucción :-( –

+0

@Andrew No necesita poner el nombre del paquete así. Si el recurso está en su proyecto de biblioteca, puede simplemente hacer referencia normalmente como si estuviera en su propio proyecto. – cottonBallPaws

+0

Nota: El primer enlace está en desuso. – user905686

Respuesta

15

Es importante construir el proyecto después de agregar recursos (o simplemente tener autoconstruido) y limpiar el proyecto ayuda la mayoría de las veces. Reiniciar Eclipse cuando "algo" sale mal también es una buena idea.

También tenga en cuenta que Android combina los recursos, por lo que el último proyecto que es compilación "gana" el nombre. Por esta razón, es una buena idea prefijar TODOS los recursos de alguna manera.

+1

Si bien su solución no resolvió mi problema específico (consulte mi edición en la pregunta sobre cómo se resolvió mi problema), parece que su respuesta ha sido ayudó a otros que encontraron su camino a esta pregunta. Así que marcaré su respuesta como aceptada. – cottonBallPaws

2

Acabo de encontrarme con el mismo problema, sin embargo, la limpieza en Eclipse no funcionó hasta que configuré tanto el proyecto de la biblioteca como el proyecto regular para tener una Propiedad de compilación objetivo.

0

Acabo de tener este problema en Android Studio. Parece que Android Studio no se dio cuenta de que mi proyecto de biblioteca era una biblioteca a pesar de que project.properties indicaba android.library = true.

He solucionado este problema marcando la casilla "Es Biblioteca" en la Estructura del proyecto.

enter image description here

3

utilizo IntelliJ y lo que funcionó para mí es hacer referencia al recurso normalmente y para asegurarse de que se añade la biblioteca como una dependencia del proyecto

Cuestiones relacionadas