确定我的Android应用程序在打开时崩溃的原因

时间:2017-06-21 18:39:05

标签: java android logcat

编辑: 在写这个问题之前,我不知道为什么我的应用程序崩溃了,我也不知道如何修复它。我保持这个原因的原因是初学者要了解logcat是什么(如果我知道它存在,我可能不会写这个问题)。

所以,如果您的Android应用程序在编译时没有产生任何错误,但在打开或点击某些内容后崩溃,请检查logcat!在窗口的底部,有一个任务栏,有几个选项:运行,TODO,Android监视器,终端和消息。点击“Android监视器”'当它打开时,选择标签' logcat'在顶部。

我原来的问题:

我的应用工作正常,但随后停止了。这是为什么?

 public class Home extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);


    mPager = (ViewPager) findViewById(R.id.pager);
    mPagerAdapter = new ScreenSlidePager.ScreenSlidePagerAdapter(getSupportFragmentManager());
    mPager.setAdapter(mPagerAdapter);
}

private static final int NUM_PAGES = 5;

private ViewPager mPager;

private PagerAdapter mPagerAdapter;

@Override
public void onBackPressed() {
    if (mPager.getCurrentItem() == 0) {
        super.onBackPressed();
    }
    else {
        mPager.setCurrentItem(mPager.getCurrentItem() - 1);
    }
}
public class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
    public ScreenSlidePagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return new ScreenSlidePageFragment();
    }

    @Override
    public int getCount() {
        return NUM_PAGES;
    }
}


public void ffwePage(View view) {
    Intent intent = new Intent(Home.this, FamilyFocusedWorkEnvironment.class);
    startActivity(intent);
}

public void esePage(View view) {
    Intent intent = new Intent(Home.this, EvaluateSoftwareEffectiveness.class);
    startActivity(intent);
}

public void impPage(View view) {
    Intent intent = new Intent(Home.this, ImprovingMissionPerformance.class);
    startActivity(intent);
}

public void dcoPage(View view) {
    Intent intent = new Intent(Home.this, DefensiveCyberspaceOperations.class);
    startActivity(intent);
}

public void stayHome(View view) {
    Intent intent = new Intent(Home.this, Home.class);
    startActivity(intent);
}
}

1 个答案:

答案 0 :(得分:1)

首先改变这行代码:

mPagerAdapter = new ScreenSlidePager.ScreenSlidePagerAdapter(getSupportFragmentManager());

到此:

mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());

您似乎从其他页面复制了适配器

更改您正在定义寻呼机的位置:

private ViewPager mPager;
在onCreate

之上