android - 使用 ZXing 时 Xperia 设备上的 RuntimeException

标签 android google-play zxing qr-code runtimeexception

我有一个应用程序上传到 Google Play。该应用程序应该从杆子上扫描二维码以注册访问。它适用于除 Sony XPERIA 型号以外的所有设备。在 Google Play Developer Console 中,我遇到了很多特定的崩溃:

java.lang.RuntimeException: autoFocus failed
at android.hardware.Camera.native_autoFocus(Native Method)
at android.hardware.Camera.autoFocus(Camera.java:975)
at me.dm7.barcodescanner.core.CameraPreview$1.run(CameraPreview.java:196)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(ActivityThread.java:5225)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method) 

我唯一称之为相机的地方是这里:

public class ScannerActivity extends Activity implements ZXingScannerView.ResultHandler {

private ZXingScannerView m_ScannerView;


@Override
public void onCreate(Bundle state) {

  super.onCreate(state);
  m_ScannerView = new ZXingScannerView(this);
  setContentView(m_ScannerView);
}

@Override
public void onResume() {

  super.onResume();
  m_ScannerView.setResultHandler(ScannerActivity.this);
  m_ScannerView.startCamera();
}

@Override
public void onPause() {

  super.onPause();
  m_ScannerView.stopCamera();
}

最佳答案

据我所知,这是 ZXing 中的一个错误。您可以通过将 ZXingSurfaceView:AutoFocus 替换为捕获异常的实现来实现解决方法。 (如果你走这条路,你还必须替换一些其他文件,或者自己重新编译 ZXing)。但是,这并不能解决根本原因。

此错误已于 2015 年 7 月 29 日在 ZXing 中修复,因此更新到最新版本可能更容易。

public void AutoFocus()
{
    if (camera != null)
    {
        if (!tokenSource.IsCancellationRequested)
        {
            global::Android.Util.Log.Debug("ZXING", "AutoFocus Requested");

            try
            {
                camera.AutoFocus(this);
            }
               catch (RuntimeException ex)
            {
                Console.WriteLine("ZXING: Warning: Caught RuntimeException during AutoFocus."); 
            }
        }
    }
}

关于android - 使用 ZXing 时 Xperia 设备上的 RuntimeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23617421/

相关文章:

android - Camera2 ImageReader 卡住重复的捕获请求

Android 测试在 Travis 上失败并出现 ShellCommandUnresponsiveException

android - 如何找到 google play 开发者注册 ID?

android - 如何将tab host与zxing二维码扫描仪集成?

java - 直接生成二维码到ImageView?

java - 我的游戏屏幕在 Android 上使用 libgdx 缩小

android - 如何在 ReccyclerView 的 onBindViewHolder 中设置文本?

安卓应用升级

android - 上传失败 : You need to use a different version code for your APK because you already have one with version code

Android 相机只对焦一次