アプリで SherlockActionBar メニューを使用しています。今、私のアプリ全体は、すべてのアクティビティを使用してポートレート モードでのみ動作するように設定されています。
"android:screenOrientation="portrait"
さて、何が起こるかというと、アプリからカメラを開き、写真を撮り、戻ってきて編集を行いますが、それは多かれ少なかれうまく機能します.
Android 2.2 で写真を撮っているときにカメラを回すと、「再開時」にアプリが少しの間横向きモードで表示されますが、横向きであってはならないことがわかり、縦向きモードに戻ります。しかし、アクション バーを 2 倍にすると、2 つのアイコンと 2 つのメニューが表示され、アプリを使い続けるとクラッシュします。
ログは次のとおりです。
10-04 08:34:24.602: E/AndroidRuntime(8954): FATAL EXCEPTION: main
10-04 08:34:24.602: E/AndroidRuntime(8954): java.lang.NullPointerException
10-04 08:34:24.602: E/AndroidRuntime(8954): at android.graphics.Canvas.drawBitmap(Canvas.java:1115)
10-04 08:34:24.602: E/AndroidRuntime(8954): at my.specapp.apps.BitmapRender.onDraw(BitmapRender.java:58)
10-04 08:34:24.602: E/AndroidRuntime(8954): at android.view.View.draw(View.java:6739)
10-04 08:34:24.602: E/AndroidRuntime(8954): at android.view.ViewGroup.drawChild(ViewGroup.java:1648)
10-04 08:34:24.602: E/AndroidRuntime(8954): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1375)
10-04 08:34:24.602: E/AndroidRuntime(8954): at android.view.View.buildDrawingCache(View.java:6499)
これはおそらく 2 番目のメニューが描画される場所であり、続行すると次のようにクラッシュします。
10-04 08:35:05.242: E/AndroidRuntime(8966): FATAL EXCEPTION: main
10-04 08:35:05.242: E/AndroidRuntime(8966): java.lang.RuntimeException: Unable to start activity ComponentInfo{bla bla/bla bla.MainActivity}: java.lang.NullPointerException
10-04 08:35:05.242: E/AndroidRuntime(8966): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787)
10-04 08:35:05.242: E/AndroidRuntime(8966): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
10-04 08:35:05.242: E/AndroidRuntime(8966): at android.app.ActivityThread.access$2300(ActivityThread.java:135)
デバイスを回転させなければ、この種の問題は発生しないので、カメラが横向きにならないようにデバイスに要求するか、アプリが横向きモードになるのをブロックする必要があると思います。マニフェストを使用しているため、修正方法がわかりません。
助言がありますか?