确定为什么我的 android 应用程序在打开时崩溃
Determine why my android app crashes upon opening
编辑:
在写这个问题之前,我不知道为什么我的应用程序崩溃了,我也不知道如何修复它。我坚持这个的原因是让初学者了解什么是logcat(如果我知道它存在,我可能不会写这个问题)。
因此,如果您的 android 应用程序在编译时没有产生任何错误,但在打开或单击某些内容后崩溃,请检查 logcat! window 底部有一个任务栏,其中包含几个选项:运行、TODO、Android 监视器、终端和消息。单击 'Android Monitor',当它打开时,选择顶部的选项卡 '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);
}
}
首先修改这行代码:
mPagerAdapter = new ScreenSlidePager.ScreenSlidePagerAdapter(getSupportFragmentManager());
对此:
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
您似乎从另一个页面复制了您的适配器
更改您定义寻呼机的位置:
private ViewPager mPager;
在 onCreate 之上
编辑: 在写这个问题之前,我不知道为什么我的应用程序崩溃了,我也不知道如何修复它。我坚持这个的原因是让初学者了解什么是logcat(如果我知道它存在,我可能不会写这个问题)。
因此,如果您的 android 应用程序在编译时没有产生任何错误,但在打开或单击某些内容后崩溃,请检查 logcat! window 底部有一个任务栏,其中包含几个选项:运行、TODO、Android 监视器、终端和消息。单击 'Android Monitor',当它打开时,选择顶部的选项卡 '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);
}
}
首先修改这行代码:
mPagerAdapter = new ScreenSlidePager.ScreenSlidePagerAdapter(getSupportFragmentManager());
对此:
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
您似乎从另一个页面复制了您的适配器
更改您定义寻呼机的位置:
private ViewPager mPager;
在 onCreate 之上