0

アプリで 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)

デバイスを回転させなければ、この種の問題は発生しないので、カメラが横向きにならないようにデバイスに要求するか、アプリが横向きモードになるのをブロックする必要があると思います。マニフェストを使用しているため、修正方法がわかりません。

助言がありますか?

4

1 に答える 1

0

カメラクラスに次の行を追加してみてください。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

またはAndroidマニフェストに:

<activity android:name=".activityname" android:orientation="portrait"/>
于 2012-10-04T06:55:49.417 に答える