2011-02-15 8 views
8

Sigo el advice para implementar el código de biblioteca independiente del dispositivo Android (¡no de la aplicación!) Para mis aplicaciones de Android en un proyecto separado "Código de biblioteca de Java". Esto hace que las pruebas sean más fáciles para mí, ya que puedo utilizar el diseño de proyecto maven estándar, el soporte de prueba Spring y los sistemas de construcción continua de la manera en que estoy acostumbrado. No quiero mezclar esto dentro de mi proyecto de la aplicación Android, aunque esto podría ser posible.Iniciar sesión en libs "Java Library Code" para aplicaciones de Android

Ahora me pregunto cómo implementar el registro en esta biblioteca. Como esta biblioteca se usará en el dispositivo Android, me gustaría ir con android.util.Log. He añadido la dependencia followind a mi proyecto para obtener los desaparecidos Android paquetes/clases y dependencias:

<dependency> 
    <groupId>com.google.android</groupId> 
    <artifactId>android</artifactId> 
    <version>2.2.1</version> 
    <scope>provided</scope> 
</dependency> 

Pero esta biblioteca contiene solo método de talón (similar a la android.jar dentro del androide-SDK), utilizando así android.util.Log resultados en

java.lang.RuntimeException: Stub! 

al ejecutar mis pruebas unitarias. ¿Cómo implemento el registro que funciona en el dispositivo Android pero no falla afuera (no espero que funcione, pero no debe fallar)?

Gracias por cualquier consejo
Klaus


Por ahora voy con la solución para detectar la excepción fuera androide pero la esperanza no es una solución mejor.

try { 
    Log.d("me", "hello"); 
} catch (RuntimeException re) { 
    // ignore failure outside android 
} 

Respuesta

6

Estos dos enlaces de GrepCode (1, 2) parecen sugerir que la que el controlador predeterminado de java.util.logging a los delegados a android android.util.Log, por lo que en su biblioteca que debe ser capaz de solo use java.util.logging apis.

No he encontrado ninguna otra documentación relacionada con este comportamiento

+0

¡Esto funciona bien! Ahora usará java.util.logging la primera vez después de tantos años de desarrollo de Java ...... – FrVaBe

Cuestiones relacionadas