为什么在以前不需要的时候开始排除我自己的应用程序的资源?

Reg*_*kie 7 android proguard adt admob

我最近遇到了一个令人费解的问题,没有解释我以某种方式设法解决.

该解决方案本身提出了一个问题,我是因为我不明白:它迫使我直接Proguard的忽略关于我自己的应用程序在其包中的所有的警告全部.

-dontwarn com.bta.**
Run Code Online (Sandbox Code Playgroud)

除了在我的开发中忽略关于最容易出错的代码的警告(最常见的代码更改)这一令人不安的问题,我对两个问题感到困惑:

  1. 为什么突然出现这种需求?(我以前从来不需要这样做.)
  2. 为什么我开发的其他项目/应用程序不需要这样做?

我相信我介绍的一些新代码或库导致了这个问题(AdMob?),但对此有何解释?为什么第三方库会强迫我关闭我自己的应用程序资源的警告?

完全关闭我自己的应用程序包的警告有什么副作用(就像我一样)?

Reg*_*kie 7

回答我自己的问题:

在浪费了太多时间调试那些本来可以节省时间的工具之后,我发现了问题的根源.这是Android SDK工具中的一个错误.据记载已在r17中解决,但我使用的是今天(2012年6月18日)的最新版本,但尚未解决!(见评论24).评论25还描述了允许我现在继续进行实际开发的变通方法.

错误是复杂系统中的事实.但事实上,Proguard和为Proguard提供输入的构建工具都无法提供任何有用的错误信息(实际上它们恰恰相反),这表明Google推荐的Android开发工具的"方法论"中有些内容被打破.