He desarrollado algún componente de Android reutilizable que es básicamente una clase. Esta clase tiene algunas dependencias de recursos, p. algunos png drawables, algunos diseños xml, etc. Así que esta clase hace referencia al archivo R autogenerado. Me gustaría distribuir este código en un único paquete como el archivo jar a otros desarrolladores para usar en sus aplicaciones.¿Cómo distribuir el código reutilizable de Android en un paquete?
He leído que la única solución posible es distribuir código junto con todos mis recursos, que otros tienen que copiar a su carpeta "res" (source).
Así que creé un archivo jar con el archivo de clase (digamos MyClass que está en el paquete com.xyz.android.app
) y los recursos y traté de usar esto en mi nueva aplicación.
Así que agregué el archivo jar a la ruta de compilación de mis nuevas aplicaciones usando la opción add external jars
en eclipse y copié todos los recursos a la carpeta res de mi nueva aplicación. (La clase de actividad dice MainActivity de mi nueva aplicación está en el paquete com.abc.myapplication
, solo para el caso si puede ser útil)
Pero cuando ejecuto esta nueva aplicación hay java.lang.ClassCastException
en la clase MyClass. Traté de depurar la aplicación y luego encontré que en la clase MyClass, hay un problema de "R no se puede resolver".
Luego cambié el paquete de MainActivity a com.xyz.android.app
(que no es la manera, otros desarrolladores estarán felices de hacerlo), pero nuevamente el mismo problema.
Pero cuando solo copio el archivo Java fuente de modo que tanto MainActivity.java como MyClass.java están en el paquete com.xyz.android.app, la aplicación funciona bien.
Entonces, si tengo que distribuir de manera tal que otros usuarios no necesiten molestar este paquete nombrando cosas, ¿cómo puedo lograr esto? Por favor ayuda !!
Editar
En android.jar, también hay algunos recursos. ¿Cómo se hace referencia en un proyecto? ¿Cómo se usan en las clases de Android? También hay un archivo android.R?
¿No es posible hacer lo mismo, es decir, hacer un archivo jar como android.jar para mi código reutilizable?
Suena prometedor. ¡Lo revisaré! –
En android.jar, también hay algunos recursos. ¿Cómo se hace referencia en un proyecto? ¿Cómo se usan en las clases de Android? También hay un archivo android.R? – Vasu
El "archivo android.R" está integrado en el sistema operativo. No necesita distribuirlo, y los valores numéricos no cambiarán. Entonces, eso es seguro de usar sin ningún trabajo adicional. – CommonsWare