针对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
。为了解决这个问题,我只是重命名了我的助手方法,所以它不会与新的内置方法冲突。