2

onResume() アクティビティで null ポインター例外が発生したため、アプリを初めて起動したとき、特定のアクティビティで null ポインターを取得しています。

私が使用しているコードは

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
            ....................
             ..................
                ..........
    int index = 0;
    if (getLastNonConfigurationInstance() != null) {
        index = (Integer) getLastNonConfigurationInstance();
    }
            mCurlView = (CurlView) findViewById(R.id.curl);
            mCurlView.setPageProvider(new PageProvider());
            mCurlView.setSizeChangedObserver(new SizeChangedObserver());
            mCurlView.setCurrentIndex(index);
            mCurlView.setBackgroundColor(0xFF202830);
}

 public static Bitmap loadBitmapFromView(View v) {
        Bitmap b = Bitmap.createBitmap(v.getLayoutParams().width,
                v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(b);
        v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
        v.draw(c);
        return b;
    }
@Override
public void onPause() {
    super.onPause();
    mCurlView.onPause();
}
@Override
public void onResume() {
    super.onResume();
    mCurlView.onResume();
}

この行 mCurlView.onResume(); で null ポインター例外が発生しています。つまり、アプリ起動の初回のみ!! この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

これは、メンバー変数mCurViewがnullである可能性があるために発生している可能性があります。使用する前に確認する必要があります。使用中onResume()

if(mCurlView != null)
   mCurlView.onResume();
于 2013-01-31T06:25:05.267 に答える
0

NULL 条件を確認する必要があります。

@Override
public void onResume() {
    super.onResume();

    if(mCurlView!=null)
       mCurlView.onResume();
}
于 2013-01-31T06:11:33.173 に答える