有时候会遇到:调试时apk可运行,导出签名的apk运行时闪退,报错提示找不到class。
解决方案:
1.Project -> Build Automatically,即取消Build Automatically.关闭Eclipse自动编译
2.Project -> Clean
3.Project -> Build
4.Android Tools -> Export Android application
原理:
原因在于Android的Debug机制:
如果直接通过Eclipse运行Project,则不论Build是手动还是自动,DEBUG均不会被设定为false。这是为什么呢?这就牵涉到Android 签名的问题,这里只简单提一下,不赘述:直接通过Eclipse运行Project,Eclipse会在工程Build完毕后在bin目录下生成一个apk,这个apk的签名是调试模式(debug mode),和发布模式(release mode)签名生成的apk略有不同。如此,该问题产生原因便浮出水面。
此时肯定会有人说,直接使用Android Tools–>Export Signed Application Package导出的release mode apk,其DEBUG就是false。这是不对的。在生成Release版时,需要区分Build的类型。如果选择的是自动Build,那么DEBUG仍然会被设定为true。所以在生成Release版时,请按照下面这个步骤进行打包,BuildConfig.DEBUG会被修改为false。
参考:http://blog.csdn.net/lzqjfly/article/details/12947857
网友评论