我在我的应用中使用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)
如果我没有转动设备我没有遇到这种问题,所以我想我可以以某种方式要求设备不允许相机转向横向,或者我必须阻止我的应用程序进入横向模式,并且这是通过清单完成的,所以我不明白如何解决它。
有什么建议吗?
答案 0 :(得分:0)
尝试在相机类中添加下一行:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
或者对于android清单:
<activity android:name=".activityname" android:orientation="portrait"/>