针对L预览测试现有Android应用程序的一部分,该应用程序崩溃,但存在以下异常:

07-08 10:05:39.024: E/AndroidRuntime(2126): FATAL EXCEPTION: main
07-08 10:05:39.024: E/AndroidRuntime(2126): Process: com.example, PID: 2126
07-08 10:05:39.024: E/AndroidRuntime(2126): java.lang.LinkageError: com.example.BaseActivity
07-08 10:05:39.024: E/AndroidRuntime(2126):     at dalvik.system.DexFile.defineClassNative(Native Method)
07-08 10:05:39.024: E/AndroidRuntime(2126):     at dalvik.system.DexFile.defineClass(DexFile.java:222)
07-08 10:05:39.024: E/AndroidRuntime(2126):     at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:215)
07-08 10:05:39.024: E/AndroidRuntime(2126):     at dalvik.system.DexPathList.findClass(DexPathList.java:321)
07-08 10:05:39.024: E/AndroidRuntime(2126):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)

该应用程序在API级别14-19中可以正常运行,但是在启动时会崩溃,并在L预览中出现此隐秘错误。 compile/targetSdk版本仍设置为API 19。

最佳答案

问题是BaseActivity中的方法冲突。我创建了一个名为getDrawable(int drawableId)的辅助方法,该方法具有与添加到Android L中Activity类的方法相同的签名。

此冲突导致LinkageError。为了解决这个问题,我只是重命名了我的助手方法,所以它不会与新的内置方法冲突。

10-06 05:29