Android 图书馆无法使用 Java 8

Android library is not working with Java 8

问题

自从我切换到 Java 后,Android Studio 3.0 the ShineButton library 中的 8 不再适用于我的项目。


java.lang.NoClassDefFoundError: Failed resolution of: Landroid/animation/Animator$AnimatorListener$$CC;

我在我的应用程序中恰好在库的 this 部分使用 ShineButton 时收到此错误。因为这个错误发生在我更新 Java 8 并且我读到一些与 Java 8 类似的错误我是很确定这是导致问题的因素。

目标

我希望有一个允许库与 Java 8 一起工作的解决方案,因为我喜欢 的库和函数]Java 8 交付。我不太确定如何解决这个问题,因为我找不到关于 NoClassDefFoundError 的任何信息以及它与 Java 8.[= 的确切关系。 22=]

额外信息

我正在 Android Studio 3.0 Canary 4 中 Android O 中构建我的项目,我使用的是 0.1.7 版本 ShineButton.

在执行动画时按下 ShineButton 时发生错误。

我已经 issued this on GitHub,但我还没有看到任何对我自己甚至更老问题的回应。 最近我也开始了issue to the Android developer team.

作为一个小更新。我的错误很早以前就被修复了。我认为是 Canary 5-6 和依赖更新。

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) {

}