Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NullPointerException:尝试在oncreate方法中的null对象引用上调用virtual方法_Java_Android - Fatal编程技术网

java.lang.NullPointerException:尝试在oncreate方法中的null对象引用上调用virtual方法

java.lang.NullPointerException:尝试在oncreate方法中的null对象引用上调用virtual方法,java,android,Java,Android,我正在尝试使用github()上的示例代码。我完全复制了代码,只是更改了它们的值,但问题是,当我运行应用程序时,它会给我以下错误: 07-04 15:42:38.683 6621-6621/com.moradisani.sorush.flstudio E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.moradisani.sorush.flstudio, PID: 6621 java.lang.RuntimeException: Un

我正在尝试使用github()上的示例代码。我完全复制了代码,只是更改了它们的值,但问题是,当我运行应用程序时,它会给我以下错误:

07-04 15:42:38.683    6621-6621/com.moradisani.sorush.flstudio E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.moradisani.sorush.flstudio, PID: 6621
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.moradisani.sorush.flstudio/com.moradisani.sorush.flstudio.Edu}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.moradisani.sorush.flstudio.KenBurnsSupportView.setResourceIds(int[])' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2411)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2474)
        at android.app.ActivityThread.access$800(ActivityThread.java:144)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1359)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:155)
        at android.app.ActivityThread.main(ActivityThread.java:5696)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.moradisani.sorush.flstudio.KenBurnsSupportView.setResourceIds(int[])' on a null object reference
        at com.moradisani.sorush.flstudio.Edu.onCreate(Edu.java:58)
        at android.app.Activity.performCreate(Activity.java:5958)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1129)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
以下是给出错误的行:

package com.moradisani.sorush.flstudio;

import android.annotation.TargetApi;
import android.graphics.RectF;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.util.SparseArrayCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.text.Spannable;
import android.text.SpannableString;
import android.util.TypedValue;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.AbsListView;
import android.widget.ImageView;

import com.nineoldandroids.view.ViewHelper;

public class Edu extends ActionBarActivity implements ScrollTabHolder,      ViewPager.OnPageChangeListener {

private static AccelerateDecelerateInterpolator sSmoothInterpolator = new AccelerateDecelerateInterpolator();

private KenBurnsSupportView mHeaderPicture;
private View mHeader;

private PagerSlidingTabStrip mPagerSlidingTabStrip;
private ViewPager mViewPager;
private PagerAdapter mPagerAdapter;

private int mActionBarHeight;
private int mMinHeaderHeight;
private int mHeaderHeight;
private int mMinHeaderTranslation;
private ImageView mHeaderLogo;

private RectF mRect1 = new RectF();
private RectF mRect2 = new RectF();

private TypedValue mTypedValue = new TypedValue();
private SpannableString mSpannableString;
private AlphaForegroundColorSpan mAlphaForegroundColorSpan;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mMinHeaderHeight = getResources().getDimensionPixelSize(R.dimen.min_header_height);
    mHeaderHeight = getResources().getDimensionPixelSize(R.dimen.header_height);
    mMinHeaderTranslation = -mMinHeaderHeight + getActionBarHeight();

    setContentView(R.layout.edu);

    mHeaderPicture = (KenBurnsSupportView) findViewById(R.id.header_picture);
    mHeaderPicture.setResourceIds(R.drawable.head1, R.drawable.head2);
    mHeaderLogo = (ImageView) findViewById(R.id.header_logo);
    mHeader = findViewById(R.id.header);

    mPagerSlidingTabStrip = (PagerSlidingTabStrip) findViewById(R.id.tabs);
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setOffscreenPageLimit(4);

    mPagerAdapter = new PagerAdapter(getSupportFragmentManager());
    mPagerAdapter.setTabHolderScrollingContent(this);

    mViewPager.setAdapter(mPagerAdapter);

    mPagerSlidingTabStrip.setViewPager(mViewPager);
    mPagerSlidingTabStrip.setOnPageChangeListener(this);
    mSpannableString = new SpannableString(getString(R.string.actionbar_title));
    mAlphaForegroundColorSpan = new AlphaForegroundColorSpan(0xffffffff);

    ViewHelper.setAlpha(getActionBarIconView(), 0f);

    getSupportActionBar().setBackgroundDrawable(null);
}

@Override
public void onPageScrollStateChanged(int arg0) {
    // nothing
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    // nothing
}

@Override
public void onPageSelected(int position) {
    SparseArrayCompat<ScrollTabHolder> scrollTabHolders = mPagerAdapter.getScrollTabHolders();
    ScrollTabHolder currentHolder = scrollTabHolders.valueAt(position);

    currentHolder.adjustScroll((int) (mHeader.getHeight() + ViewHelper.getTranslationY(mHeader)));
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount, int pagePosition) {
    if (mViewPager.getCurrentItem() == pagePosition) {
        int scrollY = getScrollY(view);
        ViewHelper.setTranslationY(mHeader, Math.max(-scrollY, mMinHeaderTranslation));
        float ratio = clamp(ViewHelper.getTranslationY(mHeader) / mMinHeaderTranslation, 0.0f, 1.0f);
        interpolate(mHeaderLogo, getActionBarIconView(), sSmoothInterpolator.getInterpolation(ratio));
        setTitleAlpha(clamp(5.0F * ratio - 4.0F, 0.0F, 1.0F));
    }
}

@Override
public void adjustScroll(int scrollHeight) {
    // nothing
}

public int getScrollY(AbsListView view) {
    View c = view.getChildAt(0);
    if (c == null) {
        return 0;
    }

    int firstVisiblePosition = view.getFirstVisiblePosition();
    int top = c.getTop();

    int headerHeight = 0;
    if (firstVisiblePosition >= 1) {
        headerHeight = mHeaderHeight;
    }

    return -top + firstVisiblePosition * c.getHeight() + headerHeight;
}

public static float clamp(float value, float max, float min) {
    return Math.max(Math.min(value, min), max);
}

private void interpolate(View view1, View view2, float interpolation) {
    getOnScreenRect(mRect1, view1);
    getOnScreenRect(mRect2, view2);

    float scaleX = 1.0F + interpolation * (mRect2.width() / mRect1.width() - 1.0F);
    float scaleY = 1.0F + interpolation * (mRect2.height() / mRect1.height() - 1.0F);
    float translationX = 0.5F * (interpolation * (mRect2.left + mRect2.right - mRect1.left - mRect1.right));
    float translationY = 0.5F * (interpolation * (mRect2.top + mRect2.bottom - mRect1.top - mRect1.bottom));

    ViewHelper.setTranslationX(view1, translationX);
    ViewHelper.setTranslationY(view1, translationY - ViewHelper.getTranslationY(mHeader));
    ViewHelper.setScaleX(view1, scaleX);
    ViewHelper.setScaleY(view1, scaleY);
}

private RectF getOnScreenRect(RectF rect, View view) {
    rect.set(view.getLeft(), view.getTop(), view.getRight(), view.getBottom());
    return rect;
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public int getActionBarHeight() {
    if (mActionBarHeight != 0) {
        return mActionBarHeight;
    }

    if(Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB){
        getTheme().resolveAttribute(android.R.attr.actionBarSize, mTypedValue, true);
    }else{
        getTheme().resolveAttribute(R.attr.actionBarSize, mTypedValue, true);
    }

    mActionBarHeight = TypedValue.complexToDimensionPixelSize(mTypedValue.data, getResources().getDisplayMetrics());

    return mActionBarHeight;
}

private void setTitleAlpha(float alpha) {
    mAlphaForegroundColorSpan.setAlpha(alpha);
    mSpannableString.setSpan(mAlphaForegroundColorSpan, 0, mSpannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    getSupportActionBar().setTitle(mSpannableString);
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private ImageView getActionBarIconView() {

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
        return (ImageView)findViewById(android.R.id.home);
    }

    return (ImageView)findViewById(android.support.v7.appcompat.R.id.home);
}

public class PagerAdapter extends FragmentPagerAdapter {

    private SparseArrayCompat<ScrollTabHolder> mScrollTabHolders;
    private final String[] TITLES = { "Page 1", "Page 2", "Page 3", "Page 4"};
    private ScrollTabHolder mListener;

    public PagerAdapter(FragmentManager fm) {
        super(fm);
        mScrollTabHolders = new SparseArrayCompat<ScrollTabHolder>();
    }

    public void setTabHolderScrollingContent(ScrollTabHolder listener) {
        mListener = listener;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return TITLES[position];
    }

    @Override
    public int getCount() {
        return TITLES.length;
    }

    @Override
    public Fragment getItem(int position) {
        ScrollTabHolderFragment fragment = (ScrollTabHolderFragment) ListFragment.newInstance(position);

        mScrollTabHolders.put(position, fragment);
        if (mListener != null) {
            fragment.setScrollTabHolder(mListener);
        }

        return fragment;
    }

    public SparseArrayCompat<ScrollTabHolder> getScrollTabHolders() {
        return mScrollTabHolders;
    }

}
}
package com.moradisani.sorush.flstudio;
导入android.annotation.TargetApi;
导入android.graphics.RectF;
导入android.os.Build;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentPagerAdapter;
导入android.support.v4.util.SparseArrayCompat;
导入android.support.v4.view.ViewPager;
导入android.support.v7.app.ActionBarActivity;
导入android.text.Spannable;
导入android.text.SpannableString;
导入android.util.TypedValue;
导入android.view.view;
导入android.view.animation.AcceleratedCelerateInterpolator;
导入android.widget.AbsListView;
导入android.widget.ImageView;
导入com.nineodeldroids.view.ViewHelper;
公共类Edu扩展ActionBarActivity实现ScrollTabHolder、ViewPager.OnPageChangeListener{
专用静态AcceleratedAccelerateInterpolator ssmoothiInterpolator=新的AcceleratedAccelerateInterpolator();
私人KenBurnsSupportView mHeaderPicture;
私人观点领袖;
私人页面滑动Abstrip MPAGERSLIDINGAbstrip;
私有视图寻呼机mViewPager;
私人寻呼器;
私家车高度;
私人室内高度;
私人国际领袖;
私人翻译;
私有ImageView mHeaderLogo;
private RectF mRect1=new RectF();
private RectF mRect2=new RectF();
私有类型值mTypedValue=新类型值();
私人SpannableString mspannblestring;
私人AlphaForegroundColorSpan mAlphaForegroundColorSpan;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mMinHeaderHeight=getResources().getDimensionPixelSize(R.dimen.min\u header\u height);
mHeaderHeight=getResources().getDimensionPixelSize(R.dimen.header\U高度);
mMinHeaderTranslation=-mMinHeaderHeight+getActionBarHeight();
setContentView(R.layout.edu);
mHeaderPicture=(KenBurnsSupportView)findViewById(R.id.header\U图片);
mHeaderPicture.SetResourceId(R.drawable.head1,R.drawable.head2);
mHeaderLogo=(ImageView)findViewById(R.id.header\U徽标);
mHeader=findviewbyd(R.id.header);
mpagerslidingtastrip=(pagerslidingtastrip)findViewById(R.id.tabs);
mViewPager=(ViewPager)findViewById(R.id.pager);
mViewPager.setOffscreenPageLimit(4);
mPagerAdapter=new-PagerAdapter(getSupportFragmentManager());
mPagerAdapter.setTabHolderScrollingContent(本文件);
mViewPager.setAdapter(mPagerAdapter);
mPagerSlidingTabStrip.setViewPager(mViewPager);
MPagerSlidingTastrip.setOnPageChangeListener(此);
mSpannableString=newspannablestring(getString(R.string.actionbar_title));
mAlphaForegroundColorSpan=新的AlphaForegroundColorSpan(0xffffffff);
setAlpha(getActionBarIconView(),0f);
getSupportActionBar().setBackgroundDrawable(空);
}
@凌驾
公共无效onPageScrollStateChanged(int arg0){
//没什么
}
@凌驾
已滚动页面上的公共无效(int-position、float-positionOffset、int-positionOffsetPixels){
//没什么
}
@凌驾
已选择页面上的公共无效(内部位置){
SparseArrayCompat scrollTabHolders=mpageAdapter.getScrollTabHolders();
ScrollTabHolder currentHolder=scrollTabHolders.valueAt(位置);
currentHolder.adjustScroll((int)(mHeader.getHeight()+ViewHelper.getTranslationY(mHeader));
}
@凌驾
public void onScroll(AbsListView视图、int firstVisibleItem、int visibleItemCount、int totalItemCount、int pagePosition){
if(mViewPager.getCurrentItem()==pagePosition){
int scrollY=getScrollY(视图);
setTranslationY(mHeader,Math.max(-scrollY,mMinHeaderTranslation));
浮动比率=钳制(ViewHelper.GetTranslation(mHeader)/mmInHeader转换,0.0f,1.0f);
插值(mHeaderLogo,getActionBarIconView(),ssmoothiInterpolator.getInterpolator(比率));
SETTITLALPHA(夹具(5.0F*比-4.0F、0.0F、1.0F));
}
}
@凌驾
公共滚动(整数滚动高度){
//没什么
}
public int getScrollY(AbsListView视图){
视图c=View.getChildAt(0);
如果(c==null){
返回0;
}
int firstVisiblePosition=view.getFirstVisiblePosition();
int top=c.getTop();
int headerHeight=0;
如果(firstVisiblePosition>=1){
人头高度=m人头高度;
}
返回-顶部+第一个可见位置*c.getHeight()+头部高度;
}
公共静态浮子夹(浮子值、浮子最大值、浮子最小值){
返回Math.max(Math.min(value,min),max);
}
专用空心插值(视图视图1、视图视图2、浮动插值){
getOnScreenRect(mRect1,视图1);
getOnScreenRect(mRect2,视图2);
float scaleX=1.0F+插值*(mRect2.width()/mRect1.width()-1.0F);
float scaleY=1.0F+插值*(mRect2.height()/mRect1.height()-1.0F);
浮点平移x=0.5F*(插值*(mRect2.left+mRect2.right-mRect1.left-mRect1.right));
浮点平移y=0.5F*(插值*(mRect2.top+mRect2.bottom-mRect1.top-mRect1.bottom));
setTranslationX(view1,translationX);
setTranslationY(view1,translationY-ViewHelper.getTranslationY(mHeader));
setScaleX(view1,scaleX);
ViewHelper.setScaleY(view1,scaleY);
}
私有RectF getOnScreenRect(RectF rect,视图){
set(view.getLeft(),view.getTop(),view.getRight(),view.getBottom());
返回矩形;
}
@TargetApi(构建版本代码蜂窝)
public int getActionBarHeight(){
如果(mActionBarHeight!=0){
返回高度;
}
if(Build.VERSION.SDK\u INT>Build.VERSION\u code.HONEYCOMB){
private ImageView getActionBarIconView() {
    return (ImageView) parentView.findViewById(android.R.id.home);
}