- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这个问题花了我很长时间,网上搜索也没有帮助。我编写了一个简单的相机应用程序,仅处理相机预览,代码附在下面。在 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/
我尝试理解[c代码 -> 汇编]代码 void node::Check( data & _data1, vector& _data2) { -> push ebp -> mov ebp,esp ->
我需要在当前表单(代码)的上下文中运行文本文件中的代码。其中一项要求是让代码创建新控件并将其添加到当前窗体。 例如,在Form1.cs中: using System.Windows.Forms; ..
我有此 C++ 代码并将其转换为 C# (.net Framework 4) 代码。有没有人给我一些关于 malloc、free 和 sprintf 方法的提示? int monate = ee; d
我的网络服务器代码有问题 #include #include #include #include #include #include #include int
给定以下 html 代码,将列表中的第三个元素(即“美丽”一词)以斜体显示的 CSS 代码是什么?当然,我可以给这个元素一个 id 或一个 class,但 html 代码必须保持不变。谢谢
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我试图制作一个宏来避免重复代码和注释。 我试过这个: #define GrowOnPage(any Page, any Component) Component.Width := Page.Surfa
我正在尝试将我的旧 C++ 代码“翻译”成头条新闻所暗示的 C# 代码。问题是我是 C# 中的新手,并不是所有的东西都像 C++ 中那样。在 C++ 中这些解决方案运行良好,但在 C# 中只是不能。我
在 Windows 10 上工作,R 语言的格式化程序似乎没有在 Visual Studio Code 中完成它的工作。我试过R support for Visual Studio Code和 R-T
我正在处理一些报告(计数),我必须获取不同参数的计数。非常简单但乏味。 一个参数的示例查询: qCountsEmployee = ( "select count(*) from %s wher
最近几天我尝试从 d00m 调试网络错误。我开始用尽想法/线索,我希望其他 SO 用户拥有可能有用的宝贵经验。我希望能够提供所有相关信息,但我个人无法控制服务器环境。 整个事情始于用户注意到我们应用程
我有一个 app.js 文件,其中包含如下 dojo amd 模式代码: require(["dojo/dom", ..], function(dom){ dom.byId('someId').i
我对“-gencode”语句中的“code=sm_X”选项有点困惑。 一个例子:NVCC 编译器选项有什么作用 -gencode arch=compute_13,code=sm_13 嵌入库中? 只有
我为我的表格使用 X-editable 框架。 但是我有一些问题。 $(document).ready(function() { $('.access').editable({
我一直在通过本教程学习 flask/python http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-wo
我想将 Vim 和 EMACS 用于 CNC、G 代码和 M 代码。 Vim 或 EMACS 是否有任何语法或模式来处理这种类型的代码? 最佳答案 一些快速搜索使我找到了 this vim 和 thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve this
这个问题在这里已经有了答案: Enabling markdown highlighting in Vim (5 个回答) 6年前关闭。 当我在 Vim 中编辑包含 Markdown 代码的 READM
我正在 Swift3 iOS 中开发视频应用程序。基本上我必须将视频 Assets 和音频与淡入淡出效果合并为一个并将其保存到 iPhone 画廊。为此,我使用以下方法: private func d
pipeline { agent any stages { stage('Build') { steps { e
我是一名优秀的程序员,十分优秀!