【问题标题】:AnimatorSet class return RuntimeException("Stub!")AnimatorSet 类返回 RuntimeException("Stub!")
【发布时间】:2017-07-07 01:35:02
【问题描述】:

我尝试制作一个 android FAB 动画工具栏。我正在使用这个例子https://github.com/vpaliyX/FAB-Toolbar-Example 来检查它是如何工作的,但我注意到一个奇怪的事情。克隆示例中的 AnimatorSet 类看起来不错,但是当我尝试在我的项目中打开它时,我得到了这个。是执行问题还是导入问题?

package android.animation;

import android.animation.Animator;
import android.animation.TimeInterpolator;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public final class AnimatorSet extends Animator {
    public AnimatorSet() {
        throw new RuntimeException("Stub!");
    }

    public void playTogether(Animator... items) {
        throw new RuntimeException("Stub!");
    }

    public void playTogether(Collection<Animator> items) {
        throw new RuntimeException("Stub!");
    }

    public void playSequentially(Animator... items) {
        throw new RuntimeException("Stub!");
    }

    public void playSequentially(List<Animator> items) {
        throw new RuntimeException("Stub!");
    }

    public ArrayList<Animator> getChildAnimations() {
        throw new RuntimeException("Stub!");
    }

    public void setTarget(Object target) {
        throw new RuntimeException("Stub!");
    }

    public void setInterpolator(TimeInterpolator interpolator) {
        throw new RuntimeException("Stub!");
    }

    public TimeInterpolator getInterpolator() {
        throw new RuntimeException("Stub!");
    }

    public AnimatorSet.Builder play(Animator anim) {
        throw new RuntimeException("Stub!");
    }

    public void cancel() {
        throw new RuntimeException("Stub!");
    }

    public void end() {
        throw new RuntimeException("Stub!");
    }

    public boolean isRunning() {
        throw new RuntimeException("Stub!");
    }

    public boolean isStarted() {
        throw new RuntimeException("Stub!");
    }

    public long getStartDelay() {
        throw new RuntimeException("Stub!");
    }

    public void setStartDelay(long startDelay) {
        throw new RuntimeException("Stub!");
    }

    public long getDuration() {
        throw new RuntimeException("Stub!");
    }

    public AnimatorSet setDuration(long duration) {
        throw new RuntimeException("Stub!");
    }

    public void setupStartValues() {
        throw new RuntimeException("Stub!");
    }

    public void setupEndValues() {
        throw new RuntimeException("Stub!");
    }

    public void pause() {
        throw new RuntimeException("Stub!");
    }

    public void resume() {
        throw new RuntimeException("Stub!");
    }

    public void start() {
        throw new RuntimeException("Stub!");
    }

    public AnimatorSet clone() {
        throw new RuntimeException("Stub!");
    }

    public String toString() {
        throw new RuntimeException("Stub!");
    }

    public long getTotalDuration() {
        throw new RuntimeException("Stub!");
    }

    public class Builder {
        Builder() {
            throw new RuntimeException("Stub!");
        }

        public AnimatorSet.Builder with(Animator anim) {
            throw new RuntimeException("Stub!");
        }

        public AnimatorSet.Builder before(Animator anim) {
            throw new RuntimeException("Stub!");
        }

        public AnimatorSet.Builder after(Animator anim) {
            throw new RuntimeException("Stub!");
        }

        public AnimatorSet.Builder after(long delay) {
            throw new RuntimeException("Stub!");
        }
    }
}

【问题讨论】:

  • 您的 IDE 正在反编译一个框架类 (android.animation.AnimatorSet)。真正的实现是在运行时链接的(例如,7.1.1's version)。
  • 那么在这种情况下它是正确的吗?奇怪的是,在一个项目中它反编译了类,而在另一个项目中却没有。
  • “奇怪的是,在一个项目中它反编译了类,而在另一个项目中却没有”——您可能没有从 SDK 管理器下载所有 Android 版本的源代码。

标签: android animation floating-action-button


【解决方案1】:

如果您希望查看 android 框架类的源代码,则需要从 SDK 管理器下载它们。 打开 SDK 管理器,查找“sources for Android x”,其中 x 是您正在开发的 android 版本并下载它。

【讨论】:

    猜你喜欢
    • 2019-06-04
    • 2015-02-23
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2014-05-20
    相关资源
    最近更新 更多