Mi aplicación Android se puede dividir en una capa de interfaz de usuario del cliente y una capa API. Me gustaría implementarlos como "aplicaciones" separadas para que la capa API pueda reutilizarse.Android: ¿Cómo usar "uses-library"?
En Eclipse, los escribo como 2 proyectos independientes de Android. En el proyecto de interfaz de usuario del cliente, declaro el proyecto API en su ruta de compilación (Proyecto -> Properies -> Ruta de compilación de Java -> Proyectos).
Al implementar el proyecto de interfaz de usuario del cliente a través de Eclipse (en mi teléfono G1 real), también despliega automáticamente el proyecto API (empaquetado en APK).
Sin embargo, al iniciar la aplicación de interfaz de usuario del cliente, llegué a este error:
Uncaught handler: thread main exiting due to uncaught exception
java.lang.VerifyError: myapp.android.testuiclient.Main
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1472)
at android.app.Instrumentation.newActivity(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
at android.app.ActivityThread.access$2100(ActivityThread.java:116)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4203)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
at dalvik.system.NativeStart.main(Native Method)
Mirando a su alrededor, que parece que debería declarar usos-biblioteca con aplicación en el archivo de manifiesto para el cliente de interfaz de usuario.
La pregunta es, ¿qué debo poner en android: name for uses-library? La guía Dev dice "el nombre de la biblioteca", pero ¿cuál es el nombre de la biblioteca? (quiero decir, en mi API "aplicación", no he declarado ningún nombre de biblioteca en ningún lugar.)
Gracias! Por lo que se ve, la opción 1 es la más aplicable. Echaré un vistazo a tus proyectos para referencia. –
Hola CommonsWare, he visto su proyecto CWAC-Cache. 1. Veo que usa Ant build.xml para compilar y ensamblar el JAR. Para que otro proyecto utilice ese JAR, ¿cómo se configura en Eclipse para que (a) en el momento de la codificación/compilación, la dependencia se resuelva y (b), en el momento de la implementación, se compilen en un solo APK y se implementen? ? 2. Supongo que CWAC-Cache no debe ejecutarse de forma independiente (¿estoy en lo cierto?). En ese caso, ¿por qué todavía necesita configurar una Actividad en AndroidManifest.xml con una acción PRINCIPAL y una categoría LANZADOR? Es eso requerido? –
Simple: No uso Eclipse. :-) CWAC-Cache tiene una actividad de demostración de muestra (si compila el APK), pero su función principal es el objetivo 'ant jar' para crear el JAR del código de caché real que otros proyectos pueden usar. La tarea 'ant jar' omite el código de demostración (aislado en un subpaquete' .demo'). – CommonsWare