Android - ¿Es posible crear una biblioteca personalizada para utilizar la mayoría de las aplicaciones?

StackOverflow https://stackoverflow.com/questions/1828448

  •  11-09-2019
  •  | 
  •  

Pregunta

¿Es posible crear una biblioteca personalizada de Android (que tiene sus propios recursos de diseño) para su uso en varias aplicaciones para Android?

  • He creado un archivo normal * .jar pero cuando intenté crear / estilo de mis puntos de vista de forma dinámica la mayor parte de las propiedades no trabajo. Incluso referencia a los estilos simples desde el archivo android.jar como android.attr.listSeparatorTextViewStyle no funcionó.

  • He creado un proyecto de Android sin ningún tipo de actividad, que tiene sus propios archivos de recursos y luego hacía referencia a este proyecto desde otro proyecto Android para utilizar en su trayectoria de la estructura. Todo parece funcionar bien, pero el emulador sigue fallando (con ningún mensaje de error significativo en el LogCat ) cuando trato de ejecutar el proyecto.

Me estoy perdiendo algo?

¿Fue útil?

Solución

Bueno, creo que hay una manera de hacerlo (aunque no lo probé yo mismo), sino que requiere que los usuarios de la biblioteca de tener que construir sus archivos APK de forma manual a través aapt.

El problema es el siguiente: El JAR va a exportar contiene el archivo de clase R que contiene los ID de los recursos de la biblioteca. Por lo tanto, cualquier aplicación puede acceder a estas identificaciones simplemente enlazar su JAR. Sin embargo, eso no es suficiente, ya que por defecto, sólo los recursos en res / carpeta de la aplicación se incluyen con el APK. Por lo tanto, usted tiene que crear el archivo APK sí mismo utilizando aapt, diciéndole que se incluyen también los recursos de la biblioteca. Compruebe la ayuda de herramientas aapt para más información.

Dado que esto implica que los usuarios de la biblioteca tienen que introducir un proceso de construcción manual (o al menos modificarla), que lo convierte en una mala experiencia.

Otros consejos

Puede que sea tarde para responder, pero se encontró este que es interesante. La creación de un proyecto de Biblioteca

  

Un proyecto de la biblioteca es un androide   proyecto de desarrollo en la que pueda compartirse   código fuente de Android y recursos.   Otros proyectos de aplicaciones de Android pueden   hacer referencia al proyecto de la biblioteca y, por lo   el tiempo de construcción, cabe destacar su compilado   fuentes en sus archivos .apk. Múltiple   proyectos de aplicación pueden hacer referencia a la   mismo proyecto biblioteca y un solo   proyecto de aplicación puede hacer referencia a   múltiples proyectos de biblioteca.

     

Si tiene el código fuente y los recursos   que son comunes a múltiples   proyectos de aplicación, se puede mover   a un proyecto de biblioteca de modo que   es más fácil de mantener en todo   aplicaciones y versiones. Aquí están   algunos escenarios comunes en los que se   podría hacer uso de proyectos de biblioteca:

  

¿Es posible crear una costumbre   biblioteca de Android (que tiene su propio   recursos de diseño) para su uso en todo   varias aplicaciones android?

No. JAR no pueden tener recursos. Puede compartir código de esta manera, pero los recursos que residen en las aplicaciones de reutilización de los frascos.

  

A pesar de hacer referencia a los estilos simples de   el archivo como android.jar   android.attr.listSeparatorTextViewStyle   no funcionó.

Asegúrese de que está vinculando su JAR contra android.jar. Puede ver muchos ejemplos de esto en los componentes CWAC en mi página de github .

¿Esto sigue siendo cierto con R21? Soy capaz de exportar un proyecto de biblioteca en archivo jar y utilizados en otros proyectos de clientes con éxito, tanto el código sabia y prudente presento activos con el acceso.

http://developer.android.com/tools/projects/index.html todavía tiene la siguiente declaración que no parece verdad más:

  

No se puede exportar un proyecto de biblioteca a un archivo JAR Una biblioteca no puede ser   distribuido como un archivo binario (tal como un archivo JAR). Esto se añade   en una versión futura de las herramientas del SDK.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top