>问题
自从我在Android Studio 3.0中切换到Java 8以来,ShineButton库在我的项目中不再起作用。
java.lang.NoClassDefFoundError: Failed resolution of: Landroid/animation/Animator$AnimatorListener$$CC;
在库的这一部分使用应用程序中的ShineButton
时,我收到此错误。由于此错误发生在我对Java8的更新中,并且我读到Java 8的一些类似错误,因此我很确定这是导致问题的因素。
目标
我希望有一个允许库与Java 8一起使用的解决方案,因为我喜欢库和Java 8提供的功能。我不太确定如何解决这个问题,因为我找不到有关NoClassDefFoundError
的任何信息以及它与Java 8的确切关系。
额外信息
我正在Android O的Android Studio 3.0Canary 4中构建我的项目,我正在使用ShineButton
的版本0.1.7
。
按下ShineButton
并执行其动画时发生错误。
我已经在 GitHub 上发布了这个,但我还没有看到对我自己的问题甚至旧问题的任何回应。 最近,我还向Android开发团队发起了一个问题。
在gradle.properties
中打开D8
android.enableD8.desugaring= true
android.enableD8=true
参见:https://jakewharton.com/androids-java-8-support/
或如下所示的代码:
private Animator.AnimatorListener mAnimatorListener = new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation, boolean isReverse) {
}
@Override
public void onAnimationEnd(Animator animation, boolean isReverse) {
}
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
密钥是覆盖:
@Override
public void onAnimationStart(Animator animation, boolean isReverse) {
}
@Override
public void onAnimationEnd(Animator animation, boolean isReverse) {
}
只是一个小小的更新。我的错误在很久以前就得到了修复。我认为这是金丝雀 5-6和依赖项更新。