2017-02-17 65 views
0

我试图制作一个android FAB动画工具栏。我使用这个例子https://github.com/vpaliyX/FAB-Toolbar-Example来检查它是如何工作的,但我注意到一件奇怪的事情。克隆示例中的AnimatorSet类看起来很好,但是当我试图在我的项目中打开它时,我已经得到了这个。这是执行还是进口问题?AnimatorSet class return RuntimeException(“Stub!”)

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!"); 
     } 
    } 
} 
+0

您的IDE正在反编译框架类('android.animation.AnimatorSet')。真正的实现在运行时链接(例如,[7.1.1的版本](https://github.com/android/platform_frameworks_base/blob/android-7.1.1_r22/core/java/android/animation/AnimatorSet.java) )。 – CommonsWare

+0

那么它在这种情况下是否正确?奇怪的是,在一个项目中,它反编译课程,但在其他项目中没有。 – Expiredmind

+0

“有什么奇怪的是,在一个项目中反编译类,但在另一个项目中” - 您可能没有从SDK Manager中下载所有Android版本的源代码。 – CommonsWare

回答

0

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