但当Camera横竖切换时程序运行起来时,抛出如下异常:
android.app.SuperNotCalledException: Activity Camera did not call through to super.onConfigurationChanged()
分析了Android2.3 Camera源码后,是由于在调用重写onConfigurationChanged未立即调用父类方法导致。
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);//这个出了问题,必须在重写后立即调用。
Log.e(TAG, "onConfigurationChanged() config="+config.toString());
PreviewFrameLayout frameLayout =
(PreviewFrameLayout) findViewById(R.id.frame_layout);
frameLayout.setWindowOrientation(config.orientation);
if(config.orientation == WINDOW_ORIENTATION_HORIZENTAL){
if (!mPreviewing && !mStartPreviewFail) {
Log.e(TAG, "!mPreviewing && !mStartPreviewFail onConfigurationChanged");
// resetExposureCompensation();
if (!restartPreview()) return;
}
changeHeadUpDisplayState();
if(!isBusyingNow){
Animation a = mShowZoomBarAnimation;
a.setDuration(300);
rootView.startAnimation(a);
rootView.setVisibility(View.VISIBLE);
}
isScreenLocked=false;
}
// super.onConfigurationChanged(config);//这个出了问题,必须在重写后立即调用,注释掉,然后移动到方法开始。
}
LOG如下:
11-22 11:13:23.376 937 2393 V MediaPlayer: setDataSource(/system/media/audio/ui/VideoRecord.ogg)
11-22 11:13:23.376 937 2393 V MediaPlayerService: Client(11) constructor
11-22 11:13:23.376 937 2393 V MediaPlayerService: Create new client(11) from pid 937, url=/system/media/audio/ui/VideoRecord.ogg, connId=11
11-22 11:13:23.376 937 2393 V MediaPlayerService: setDataSource(/system/media/audio/ui/VideoRecord.ogg)
11-22 11:13:23.376 937 2393 V MediaPlayerService: player type = 3
11-22 11:13:23.376 937 2393 V MediaPlayerService: create VorbisPlayer
11-22 11:13:23.386 937 2393 V MediaPlayerService: setDataSource
11-22 11:13:23.396 937 2393 V MediaPlayer: MediaPlayer::setAudioStreamType
11-22 11:13:23.396 937 2393 V MediaPlayer: prepare
11-22 11:13:23.396 937 2393 V MediaPlayerService: [11] setAudioStreamType(7)
11-22 11:13:23.396 937 2393 V MediaPlayerService: [11] prepareAsync
11-22 11:13:23.396 937 2393 V MediaPlayerService: [11] notify (0xc40e0, 1, 0, 0)
11-22 11:13:23.396 937 2393 V MediaPlayer: message received msg=1, ext1=0, ext2=0
11-22 11:13:23.396 937 2393 V MediaPlayer: prepared
11-22 11:13:23.396 937 2393 V MediaPlayer: signal application thread
11-22 11:13:23.406 937 2393 V MediaPlayer: prepare complete - status=0
11-22 11:13:23.406 2509 2570 E CameraHolder: open camera 1619
11-22 11:13:23.416 2509 2570 E CameraHolder: open done 1630
11-22 11:13:23.416 2509 2570 E camera : CameraHolder.instance().open() time=1631
11-22 11:13:23.426 2509 2570 E camera : mCameraDevice.getParameters() time=1640
11-22 11:13:23.426 2509 2570 D Camera : app passed NULL surface
11-22 11:13:23.436 2509 2570 E setCameraParameters(): setCameraParameters............updateSet=-1
11-22 11:13:23.436 2509 2570 E camera : updateCameraParametersInitialize()
11-22 11:13:23.436 2509 2570 E camera : updateCameraParametersZoom()
11-22 11:13:23.436 2509 2570 E camera : mZoomValue=0
11-22 11:13:23.436 2509 2570 E camera : updateCameraParametersPreference()
11-22 11:13:23.446 2509 2570 E camera : updateCameraParametersPreference()
11-22 11:13:23.446 2509 2570 E ComboPreferences: mPrefLocal.getString(key, defValue);
11-22 11:13:23.446 2509 2570 E ComboPreferences: mPrefGlobal.getString(key, defValue)
11-22 11:13:23.446 2509 2570 E ComboPreferences: mPrefGlobal.getString(key, defValue)
11-22 11:13:23.456 2509 2570 E ComboPreferences: mPrefGlobal.getString(key, defValue)
11-22 11:13:23.456 2509 2570 E ComboPreferences: mPrefGlobal.getString(key, defValue)
11-22 11:13:23.456 2509 2570 E ComboPreferences: mPrefGlobal.getString(key, defValue)
11-22 11:13:23.456 2509 2570 E ComboPreferences: mPrefGlobal.getString(key, defValue)
11-22 11:13:23.456 2509 2570 E ComboPreferences: mPrefGlobal.getString(key, defValue)
11-22 11:13:23.456 2509 2570 E ComboPreferences: mPrefGlobal.getString(key, defValue)
11-22 11:13:23.456 2509 2570 E ComboPreferences: mPrefGlobal.getString(key, defValue)
11-22 11:13:23.466 2509 2570 E ComboPreferences: mPrefLocal.getString(key, defValue);
11-22 11:13:23.466 2509 2570 E setCameraParameters(): setCameraParameters...ok!
11-22 11:13:23.466 937 2393 D CameraHardwareComip: preview xoffset: 25, preview yoffset: 5
11-22 11:13:23.466 937 2393 D CameraHardwareComip: window width: 258, window height: 194
11-22 11:13:23.488 937 2393 D CameraHardwareComip: picture width: 2048, picture height: 1536, fps: 30
11-22 11:13:23.488 937 2393 E CameraHardwareComip: overlayConfig: Overlay is not set yet
11-22 11:13:23.496 2509 2570 E camera : max-zoom=0
11-22 11:13:23.496 2509 2570 E camera : mZoomValue=0
11-22 11:13:23.506 2509 2570 V camera : startPreview
11-22 11:13:23.516 937 1273 D CameraHardwareComip: startPreview: 0x0
11-22 11:13:23.610 937 1273 D CameraHardwareComip: zoom(0): 100
11-22 11:13:23.657 937 1273 W CameraHardwareComip: camera device don't support brightness
11-22 11:13:23.686 937 1273 D CameraHardwareComip: streamOn: 0
11-22 11:13:23.697 937 1273 D CameraHardwareComip: overlayDisplay : 1
11-22 11:13:23.996 2509 2509 E CameraHolder: Camera occupied
11-22 11:13:24.066 2509 2509 D AndroidRuntime: Shutting down VM
11-22 11:13:24.076 2509 2509 W dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x4001d7d8)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: FATAL EXCEPTION: main
11-22 11:13:24.076 2509 2509 E AndroidRuntime: android.app.SuperNotCalledException: Activity Camera did not call through to super.onConfigurationChanged()
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at android.app.ActivityThread.performConfigurationChanged(ActivityThread.java:3928)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at android.app.ActivityThread.handleConfigurationChanged(ActivityThread.java:4017)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2106)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at android.os.Looper.loop(Looper.java:123)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:4627)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:521)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-22 11:13:24.076 2509 2509 E AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
11-22 11:13:24.106 1247 1250 W ActivityManager: Force finishing activity com.android.camera/.Camera
分享到:
相关推荐
A util for setting status bar style on Android App. It can work above API 19(KitKat 4.4). 中文版点我 Sample Download StatusBarUtil-Demo ChangeLog Click Me Usage Add the dependencies to your build....
Android 中 android.view.WindowLeaked的解决办法 按字面了解,Window Leaked大概就是说一个窗体泄漏了,也就是我们常说的内存泄漏,为什么窗体会泄漏呢? 产生原因: 我们知道Android的每一个Activity都有个...
Unable to start activity ComponentInfo{com.applp.chunghop/com.applp.chunghop.activity.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String ...
在Android应用开发中,自动更新功能是提升用户体验和确保应用安全的重要组成部分。它允许开发者发布新版本的应用,而用户无需手动查找和下载更新,系统会在后台自动完成这一过程。本篇文章将详细介绍如何在Android...
5)....Fixed: Windows 8+ App Menu shortcuts 6)....Fixed: Unmangling on x64 EurekaLog 7.2 Hotfix 3 (7.2.3.0), 20-May-2015 1)....Added: Support for token auth in Bugzilla (latest 4.x builds) 2)....Added...
当你安装完Android Studio之后,开始了一个新项目,然后你发现: activity_main.xml前几行报错,比如http://schemas.android.com/apk/res/android “URI is not registered”。 move refactoring is not available ...
android-support-v13 eclipse android支持包 支持包 支持包
支持USB摄像头的android代码,UVC协议谁信那个头,USBCamera多摄像头同时预览打开。 可以复用里面的代码进行更多的摄像头打开,只要带宽足够,可以打开多个。 测试环境: macOS Catalina 版本10.15.7 Android Studio...
支持给Activity定义 URL,这样可以通过 URL 跳转到Activity,支持在浏览器以及 app 中跳入。 集成 1. 添加引用 请根据项目的历史情况选择合适的集成方式 1.1 annotaitonProcessor 方式 dependencies { compile '...
MWArray result = app.EvaluateFunction("sim", structParam); Console.WriteLine("Result: " + result.ToString()); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } } } ``` 在...
开发android的简单程序并且为android的开发打下基础,很希望得到源代码的
钩子 Java 方法的框架。传奇项目已过时,请移至鲸鱼钩什么是传奇?Legend 是一个用于Android 开发的Hook 框架,它允许您在无需ROOT 的情况下Hook Java 方法。...}示例2拦截startActivity@Hook("android.app.Activity::s
一劳永逸方法 网上的其他方法比如修改...android-studio-ide-2.3.3\android-studio\plugins\android\lib\templates\gradle-projects\NewAndroidProject\root\ 找到build.gradle.ftl文件 编辑 ,在 allprojects
在Android平台上实现QQ登录功能,通常涉及到QQ SDK的集成与应用。这个过程涵盖了多个关键步骤和技术要点,包括SDK的获取、项目的配置、权限申请、回调处理等。以下将详细讲解这些知识点。 首先,你需要从腾讯开放...
<uses-feature android:name="android.hardware.camera.autofocus" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> ...
UVCCamera是一个开源项目,专为Android设备设计,用于实现USB摄像头的直接访问和流媒体传输。这个库使得开发者能够利用USB连接的摄像头进行视频捕获和处理,扩大了Android设备的摄影功能,尤其适用于需要高质量视频...
import android.app.Activity import android.content.Intent import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts import androidx....
import android.app.Activity; import com.obtk.mapdemo.R; public class MapApiDemoActivity extends Activity implements OnGetGeoCoderResultListener { private MapView mMapView = null; private BaiduMap...
"Android Caused by: java.lang.ClassNotFoundException解决办法" 在 Android 开发中,ClassNotFoundException 是一个常见的异常,它通常发生在应用程序启动或运行时。这个异常的出现告诉我们,Java 虚拟机无法找到...