2012-06-13 5 views
7

Me golpearon recientemente con a puzzling problem sin explicación de que de alguna manera managed to solve.¿Por qué empezar a excluir los recursos de mi propia aplicación cuando esto no era necesario antes?

La solución en sí plantea un problema para mí porque No entiendo que: Me obliga a dirigir Proguard hacer caso omiso de todas las advertencias en relación con el paquete de mi propia aplicación en su totalidad .

-dontwarn com.bta.** 

Aparte de la cuestión problemática de tener que pasar por alto las advertencias sobre el código más propenso a errores en mi desarrollo (código más cambia con frecuencia), Me confunde dos cuestiones:

  1. Por qué hicieron esto necesidad de repente apareció? (Nunca tuve que hacer esto antes )
  2. ¿Por qué no es esto necesario en otros proyectos/aplicaciones que desarrolle I ?

Creo que algún código nuevo o biblioteca que introduje lo causó (¿AdMob?) Pero ¿cuál es la explicación para esto? ¿Por qué una biblioteca de un tercero me obligaría a desactivar las advertencias sobre mis propios recursos de la aplicación?

¿Cuáles son los efectos secundarios de apagar las advertencias sobre mi propio paquete aplicación totalmente (como yo)?

+1

¿Está utilizando la última configuración de Proguard que consta de una parte estándar del SDK y una parte específica de la aplicación en su propio archivo de configuración (consulte http://tools.android.com/recent/proguardimprovements)? – Codo

+0

@Codo No. ¡Muchas gracias por proporcionar este enlace! En mi entorno de desarrollo frenético y agitado, a veces echo de menos una pieza crítica de documentación como esta. Por favor, publique esto como respuesta para que yo pueda aceptarlo. Aún no he leído el documento, pero una breve navegación sugiere que, de hecho, esta puede ser la clave para la solución del misterio. +1. –

+1

No estoy seguro de que esta sea la solución para su problema. Háganos saber cuándo lo ha intentado. – Codo

Respuesta

7

responder a mi propia pregunta:

Después de perder demasiado tiempo en la depuración de las mismas herramientas que se supone que me ahorrar tiempo, he descubierto la fuente del problema. It's a bug in the Android SDK tools. Está documentado como se resolvió en r17, pero estoy usando lo último de hoy (18 de junio de 2012) y ¡no se ha resuelto! (ver comentario 24). Comment 25 también describe la solución alternativa que me permite ahora continuar con mi desarrollo real.

Los errores son una realidad en sistemas complejos. Pero el hecho de que ni Proguard ni las herramientas de compilación que alimentan la entrada a Proguard podrían proporcionar ningún mensaje de error útil (de hecho, hicieron exactamente lo contrario), sugiere que algo se rompe en la "metodología" de las herramientas de desarrollo de Android recommended by Google.

Cuestiones relacionadas