Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why start excluding my own application's resources when this wasn't needed before?

I was recently hit with a puzzling problem with no explanation that I somehow managed to solve.

The solution itself poses a problem for me because I don't understand it: It forces me to direct Proguard to ignore all warnings regarding my own application's package in its entirety.

-dontwarn com.bta.**

Aside from the troubling issue of having to ignore warnings about the most error-prone code in my development (most frequently changing code), I am puzzled by two questions:

  1. Why did this need suddenly showed up? (I never needed to do this before.)
  2. Why isn't this needed in other projects/applications that I develop?

I believe some new code or library that I introduced caused this (AdMob?) but what is the explanation for this? Why would a third party library force me to turn off warnings about my own application's resources?

What are the side effects of turning off warnings about my own application package entirely (like I did)?

like image 919
Regex Rookie Avatar asked Jun 13 '12 10:06

Regex Rookie


1 Answers

Answering my own question:

After wasting way too much time on debugging the very tools that are supposed to save me time, I discovered the source of the problem. It's a bug in the Android SDK tools. It is documented as have been solved in r17, but I am using the latest of today (June 18 2012) and it hasn't been solved! (see comment 24). Comment 25 also describes the workaround that allows me now to proceed with my actual development.

Bugs are fact of life in complex systems. But the fact that neither Proguard nor the build tools that feed input to Proguard could provide any helpful error message (in fact they did exactly the opposite), suggests something is broken in the "methodology" of the Android development tools recommended by Google.

like image 117
Regex Rookie Avatar answered Oct 16 '22 18:10

Regex Rookie