Android L:LinkageError崩溃应用程序

swa*_*son 9 android android-5.0-lollipop

作为针对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)
Run Code Online (Sandbox Code Playgroud)

该应用程序在API级别14-19中运行良好,但在启动时崩溃L预览中出现此神秘错误.compile/targetSdk版本仍设置为API 19.

swa*_*son 20

问题是一个相互矛盾的方法BaseActivity.我创建了一个名为helper的方法getDrawable(int drawableId),该方法与添加到ActivityAndroid L中的类的方法具有相同的签名.

这场冲突引起了LinkageError.为了解决这个问题,我只是重命名了我的帮助方法,因此它不会与新的内置方法冲突.

  • 这解决了我的问题,但我需要在模块设置中将Compile Sdk版本更改为Android 5.0,然后让Android Studio显示此错误并将其与targetSdk中的更改链接到API 21 (2认同)