最近在项目Android 6.0系统上报如下的错:
FATAL EXCEPTION: Thread-3363
Process: cc.vart, PID: 2709
java.lang.LinkageError: cc.vart.ui.fragment.MainActivity
at dalvik.system.DexFile.defineClassNative(Native Method)
at dalvik.system.DexFile.defineClass(DexFile.java:226)
at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
at dalvik.system.DexPathList.findClass(DexPathList.java:338)
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at cc.vart.ui.login.GuideActivity.intentA(GuideActivity.java:240)
at cc.vart.ui.login.GuideActivity.access$100(GuideActivity.java:53)
at cc.vart.ui.login.GuideActivity$2.run(GuideActivity.java:105)
一开始以为是网络的错误,后来经过排查,折腾发现不是这个问题,后来在stackoverflow.com 找到一个用了getDrawable(int drawableId)方法名出错,与6.0系统中的方法重了,可是我的项目没有方法叫getDrawable(int drawableId)。
排查了好久也没有找出问题,后来发现我项目中有一个方法叫getColor(int color),试着改呢一下这个方法名,神奇的发现不报错了。
看来以后:getDrawable, getColor 之类的方法要慎用。