gpt4 book ai didi

java - 简单的相机代码导致装有 Android V 5.01 的 Nexus4 重启

转载 作者:太空宇宙 更新时间:2023-11-04 14:13:12 25 4
gpt4 key购买 nike

这个问题花了我很长时间,网上搜索也没有帮助。我编写了一个简单的相机应用程序,仅处理相机预览,代码附在下面。在 Nexus4 (V 5.01) 上运行此代码会导致设备在 1m 到 30m 的随机时间范围后重新启动。我不能说这次重启是由于相机本身或正在运行的 Android 版本中的错误造成的,因为“Camera HDR Studio”和“Barcode Scanner”应用程序运行没有问题。

下面是代码,为了简化,我删除了所有不需要的检查代码和相机释放。

XML:-

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/camera_preview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">

<SurfaceView
android:id="@+id/camerasurfaceview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>

</FrameLayout>

Java 代码:-

import java.io.IOException;
import android.hardware.Camera;
import android.os.Bundle;
import android.app.Activity;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.WindowManager;

public final class MyActivity extends Activity implements SurfaceHolder.Callback, Camera.PreviewCallback
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_credit_reader);

SurfaceView SV = (SurfaceView) findViewById(R.id.camerasurfaceview);
SurfaceHolder mHolder = SV.getHolder();
mHolder.addCallback(this);
}

public void surfaceCreated(SurfaceHolder holder){}
public void surfaceDestroyed(SurfaceHolder holder){}

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h)
{
try
{
Camera m_camera ;
m_camera = Camera.open() ;
m_camera.setPreviewDisplay(holder);
m_camera.setPreviewCallback(this);
m_camera.startPreview();
}
catch (IOException e)
{
e.printStackTrace();
}
}

@Override
public void onPreviewFrame(byte[] data, Camera camera)
{
// any processing for "byte[] data".
double rr = 0 ;
for(int y = 0 ; y < data.length ; y++)
{
rr += Math.sqrt(Math.sqrt((double)(data[y])));
rr = Math.sin(rr);
if(data[y] > 128)
data[y] = (byte)Math.min(255.0, rr) ;
}
}
}

list :-

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="test.example.camera"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="19" />

<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_glass"
android:theme="@android:style/Theme.NoTitleBar"
android:label="@string/app_name">
<activity
android:name="test.example.camera.MyActivity"
android:label="@string/app_name"
android:configChanges="orientation"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

预先感谢您的帮助。

下面是logcat

    01-20 10:30:15.983: D/OpenGLRenderer(4177): Render dirty regions requested: true
01-20 10:30:15.990: D/Atlas(4177): Validating map...
01-20 10:30:16.017: I/Adreno-EGL(4177): <qeglDrvAPI_eglInitialize:410>: QUALCOMM Build: 10/28/14, c33033c, Ia6306ec328
01-20 10:30:16.018: I/OpenGLRenderer(4177): Initialized EGL, version 1.4
01-20 10:30:16.041: D/OpenGLRenderer(4177): Enabling debug mode 0
01-20 10:30:16.084: W/AudioFlinger(191): acquireAudioSessionId() unknown client 4177 for session 20
01-20 10:30:16.152: W/AudioFlinger(191): acquireAudioSessionId() unknown client 4177 for session 21
01-20 10:30:16.189: I/Icing(1466): Indexing 708E85BDBFB1F209A370FF7D45917D504857502F from com.google.android.googlequicksearchbox
01-20 10:30:16.194: I/CameraClient(191): Opening camera 0
01-20 10:30:16.261: E/qcom_sensors_hal(549): hal_process_report_ind: Bad item quality: 11
01-20 10:30:16.277: I/Icing(1466): Indexing done 708E85BDBFB1F209A370FF7D45917D504857502F
01-20 10:30:16.283: E/mm-camera(203): sensor_load_chromatix: libchromatix_imx111_preview.so: 30
01-20 10:30:16.384: W/linker(203): libmmcamera_faceproc.so has text relocations. This is wasting memory and prevents security hardening. Please fix.
01-20 10:30:16.396: E/mm-camera(203): vfe_ops_init: E
01-20 10:30:16.420: E/mm-camera(203): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM
01-20 10:30:16.421: E/mm-camera(203): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM
01-20 10:30:16.426: E/mm-camera(203): mctl_init_stats_proc_info: snap_max_line_cnt =30096
01-20 10:30:16.454: W/linker(191): libmorpho_noise_reduction.so has text relocations. This is wasting memory and prevents security hardening. Please fix.
01-20 10:30:16.461: E/QCameraHWI(191): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0xb8237b48, mStreamDisplay = 0x0xb81edf78
01-20 10:30:16.461: D/QCameraHWI(191): android::status_t android::QCameraHardwareInterface::startPreview(): start preview now
01-20 10:30:16.461: I/QCameraHWI(191): android::status_t android::QCameraHardwareInterface::startPreview2():Setting ZSL mode
01-20 10:30:16.466: E/mm-camera(203): config_proc_CAMERA_SET_INFORM_STARTPREVIEW
01-20 10:30:16.469: E/mm-camera(203): config_update_stream_info Storing stream parameters for video inst 1 as : width = 640, height 480, format = 1 inst_handle = 810081 cid = 0
01-20 10:30:16.507: E/mm-camera(203): config_update_stream_info Storing stream parameters for video inst 3 as : width = 640, height 480, format = 1 inst_handle = 830083 cid = 0
01-20 10:30:16.508: E/mm-camera(203): config_update_stream_info Storing stream parameters for video inst 4 as : width = 512, height 384, format = 1 inst_handle = 840084 cid = 0
01-20 10:30:16.526: E/mm-camera(203): config_decide_vfe_outputs: Ports Used 3, Op mode 1
01-20 10:30:16.526: E/mm-camera(203): config_decide_vfe_outputs Current mode 0 Full size streaming : Disabled
01-20 10:30:16.527: E/mm-camera(203): config_decide_vfe_outputs: Primary: 640x480, extra_pad: 0x0, Fmt: 1, Type: 1, Path: 1
01-20 10:30:16.527: E/mm-camera(203): config_decide_vfe_outputs: Secondary: 640x480, extra_pad: 0x0, Fmt: 1, Type: 3, Path: 4
01-20 10:30:16.530: E/mm-camera(203): config_update_inst_handles Updated the inst handles as 810081, 830083, 0, 0
01-20 10:30:16.665: E/mm-camera(203): sensor_load_chromatix: libchromatix_imx111_zsl.so: 26
01-20 10:30:16.769: E/mm-camera(203): camif_client_set_params: camif has associated with obj mask 0x1
01-20 10:30:16.769: E/mm-camera(203): config_v2_CAMERA_START_common CAMIF_PARAMS_ADD_OBJ_ID failed -1
01-20 10:30:16.782: E/mm-camera(203): vfe_operation_config: format 3
01-20 10:30:16.782: E/mm-camera(203): vfe_operation_config:vfe_op_mode=5
01-20 10:30:16.782: E/mm-camera(203): Invalid ASD Set Params Type
01-20 10:30:16.782: E/mm-camera(203): vfe_set_bestshot: Bestshot mode not changed
01-20 10:30:16.856: I/Choreographer(4177): Skipped 50 frames! The application may be doing too much work on its main thread.
01-20 10:30:16.880: E/mm-libcamera2(191): PROFILE HAL: First preview frame received: 1421742616.880144392
01-20 10:30:16.888: E/QCameraHWI_Preview(191): processPreviewFrameWithDisplay: buffer to be enqueued is not locked
01-20 10:30:16.948: W/IInputConnectionWrapper(993): showStatusIcon on inactive InputConnection
01-20 10:30:16.960: I/ActivityManager(549): Displayed bhtfactor.creditreader/.CreditReaderActivity: +1s268ms
01-20 10:30:16.992: I/WindowManager(549): Screen frozen for +1s168ms due to Window{f8d7d98 u0 Starting bhtfactor.creditreader}
01-20 10:30:19.134: I/art(549): Explicit concurrent mark sweep GC freed 13496(649KB) AllocSpace objects, 4(637KB) LOS objects, 33% free, 20MB/31MB, paused 1.220ms total 93.880ms
01-20 10:30:19.212: D/TaskPersister(549): removeObsoleteFile: deleting file=1889_task.xml
01-20 10:30:19.213: D/TaskPersister(549): removeObsoleteFile: deleting file=1889_task_thumbnail.png
01-20 10:30:25.005: V/ConfigFetchTask(1466): ConfigFetchTask getDeviceDataVersionInfo(): ABFEt1VL9vtrn_Q2kmWmuZxbSbSGw5Us2DjlF2hd_SzSN39NNSD12yIpWdeUqv6SJg5NkeMV2WI3vZvbvs04Y0RFz5CBKQACq1dTLx8j9StD0zUZXpcUPnG58d_f8fEEdGoLjWsJYrX2M41Can8c8pcprfwP07h1IffwaozVdYJJBRKqTV4KDV9TffHcLrFCO1U7QHEVPEPsHeb_QaAtz1o49YmRUKfWRyOWaAv0NR_FnA13lJqR3KqUEOtNs-5HwY-Pj0nhQWmewalD8g63KPEjuq1qEDny6THyv-QZAgkhTjgpF26Ud6c
01-20 10:30:25.010: I/GoogleHttpClient(1466): Falling back to old SSLCertificateSocketFactory
01-20 10:30:25.690: I/ConfigFetchService(1466): fetch service done; releasing wakelock
01-20 10:30:25.692: I/ConfigFetchService(1466): stopping self
01-20 10:30:25.699: I/ConfigService(1251): onDestroy
01-20 10:30:34.381: D/Finsky(2199): [1] 5.onFinished: Installation state replication succeeded.
: E/(): Device disconnected

最佳答案

在 Nexuses(至少 4 和 10)更新到 Android L 后,我遇到了类似的问题。它看起来像是固件错误且无法解决(Nexus 10 更新并修复了此问题,但 Nexus 4 仍在重新启动并且相机停止响应)。您可以尝试内置相机应用程序 - 它也有同样的问题。

关于java - 简单的相机代码导致装有 Android V 5.01 的 Nexus4 重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28040590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com