Estoy desarrollando una biblioteca de Android SDK. En esta biblioteca, he declarado y usado algunas actividades. Ahora traté de incluir la biblioteca en una aplicación, pero me di cuenta de que debo declarar todas las actividades de la biblioteca en la aplicación. Esto es algo muy malo porque en la biblioteca he incluido muchas actividades y el desarrollador tiene que copiar todas las actividades en su propia aplicación. ¿Hay soluciones para esto?android library project and Activities
Respuesta
No, esta es una limitación conocida de las bibliotecas en este momento. Hay una gran cantidad de discusiones en la comunidad de desarrollo de Android de solucionar esto en el futuro, pero por ahora es una limitación de cómo lo hacen las bibliotecas.
Desde el doc
En el archivo de manifiesto del proyecto aplicación, debe agregar declaraciones de todos los componentes que la aplicación va a utilizar que se importado de un proyecto de biblioteca. Para ejemplo, debe declarar cualquier
<activity>
,<service>
,<receiver>
,<provider>
, y así sucesivamente, así como<permission>
,<uses-library>
y elementos similares.
También, excelente respuesta here por Mark Murphy.
Gracias por su respuesta .. Tal vez tengo que usar cuadros de diálogo en lugar de actividades. Esto podría evitar esta limitación. ¿Estás de acuerdo? – ets23
(además: no necesito crear un contenedor) – ets23
La única parte de su biblioteca que deberá estar en el proyecto consumidor es la declaración en el manifiesto de Android. No estoy seguro de lo que quiere decir con el uso de diálogos en lugar de actividades. –
Actualización 1: Al usar Gradle, la fusión de manifiesto se realiza ahora automáticamente. Más detalles sobre cómo funciona y cómo resolver los conflictos pueden ser encontrados here (gracias por la observación guy.gc)
Original post:
para actualizar este tema: combinación de auto es ahora posible. Solo debe agregar
manifestmerger.enabled=true
a su project.properties. Using the new "manifestmerger" property in Android discute esto también.
Sé que este es un hilo viejo, pero me topé con él y quiero evitar que otros (incluidos) piensen que no es posible. Esta línea fue totalmente suficiente en mis proyectos para hacer uso de las actividades en la aplicación que consume la biblioteca.
En realidad, la fusión de manifiesto se realiza automáticamente. http://developer.android.com/tools/building/manifest-merge.html Si es necesario, puede definir cómo se resuelven los conflictos –
Gracias por el comentario @ guy.gc, actualizaré la respuesta –
- 1. Actividad de inicio de Android-Library-Project
- 2. Android Library Project - Definición de clases
- 3. Crear Android Library Project con Ant
- 4. Android Activities vs Views
- 5. Android Library Project: ofuscar y mantener los recursos
- 6. Reemplazar (o "Anular") Cadena en Android Library Project
- 7. Library Project combina el archivo de manifiesto?
- 8. Django Project Done and Working. ¿Ahora que?
- 9. Lectura en Mesh Algorithm and Mesh Library
- 10. android export eclipse project
- 11. Android FTP Library
- 12. Android File Manager Library
- 13. Android Compatibility Library error
- 14. Android Animation Library?
- 15. Streaming Library VLC Android
- 16. Eclipse - Android Library Update
- 17. Android Image Processing Library
- 18. Android OCR Library
- 19. Control de versiones y Android Library Projects
- 20. Android Intent.FLAG_ACTIVITY_SINGLE_TOP AND Intent.FLAG_ACTIVITY_CLEAR_TOP
- 21. Android Assets and NDK
- 22. Objective-C and Android
- 23. Android Fragments and animation
- 24. Android and Dependency Injection
- 25. Android: ¿Cómo usar "uses-library"?
- 26. Android Support Library Manual Descargar
- 27. SSH Java-library para Android?
- 28. building shared library for android
- 29. android update project -path "comando no encontrado"
- 30. Eclipse Android Project no Target disponible
¿qué quiere decir copiar las actividades a la otra aplicación? ¿Estás hablando del manifiesto? Si es así, Google dice que intenta agregar la fusión de manifiestos en el futuro, pero necesita copiar/pegar por ahora. Si no, lo estás haciendo mal. – schwiz
@schwiz manifestmerger.enabled = true existe ahora, pero debemos forzar a los desarrolladores (que usan mi biblioteca en sus aplicaciones), a establecer min y destino SDK a nuestro sdk mínimo y objetivo! (fuente: http://stackoverflow.com/questions/10976635/using-the-new-manifestmerger-property-in-android#21397467) –