Android中proguard的作用
2012-08-08 12:12:05 来源:WEB开发网核心提示:08-08 10:51:50.632 W/ActivityManager( 1736): Force finishing activity com.android.settings/.SubSettings08-08 10:51:50.632 W/ActivityManager( 1736): Force fi
08-08 10:51:50.632 W/ActivityManager( 1736): Force finishing activity com.android.settings/.SubSettings
08-08 10:51:50.632 W/ActivityManager( 1736): Force finishing activity com.android.settings/.Settings
08-08 10:51:50.632 W/ActivityManager( 1736): Force finishing activity com.android.settings/.Settings
从log上可以看出,程序一直没有找到要启动的activity的class,可是在代码中我明明已经添加了,而且对比设置中其他选项的做法,没有什么区别。可是结果还是一样,一直报错。后来实在没有办法,模仿其他选项的做法完全一样的写一个,只是class 名不一样而已,可还是不行。
这个问题折腾了我2天,期间找好几个在设置中添加过选项的同事来看也没找到原因。本来一个很小的功能,顶多平常1-2个小时就搞定的东西,搞了我2天,当时比较崩溃,该想的办法都想了,可是就是不如所愿。后来实在不行,我就看了一下Settings package中的代码结构,发现在Settins目录下面有一个proguard.flags文件,平时一般只关注Android.mk和AndroidManifest.xml两个文件,其他文件都忽略,因此也不知道他们都有什么作用。当我打开这个文件时,豁然开朗,问题就在这里。原来我添加的class没有被包含在这里面,这导致启动activity时找不动这个class。问题解决了,经验教训是proguard要慎用啊!
更多精彩
赞助商链接