作为针对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。
答案 0 :(得分:20)
问题是BaseActivity
中存在冲突的方法。我创建了一个名为getDrawable(int drawableId)
的辅助方法,该方法与添加到Android L中Activity
类的方法具有相同的签名。
此冲突导致LinkageError
。为了解决这个问题,我只是重命名了我的帮助方法,因此它不会与新的内置方法发生冲突。