Android 库不适用于 Java 8



>问题

自从我在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和依赖项更新。

相关内容

  • 没有找到相关文章

最新更新