0

我在我的应用程序中使用 SherlockActionBar 菜单。现在,我的整个应用程序设置为仅在纵向模式下使用所有活动:

"android:screenOrientation="portrait" 

现在,发生的事情是,我从我的应用程序中打开相机,拍照,然后在返回时进行一些编辑,这或多或少都很好。

如果我在 Android 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)

这很可能是绘制第二个菜单的地方,然后如果我继续它会崩溃:

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 回答