Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用ZXing时Xperia设备上的运行时异常_Android_Google Play_Zxing_Qr Code_Runtimeexception - Fatal编程技术网

Android 使用ZXing时Xperia设备上的运行时异常

Android 使用ZXing时Xperia设备上的运行时异常,android,google-play,zxing,qr-code,runtimeexception,Android,Google Play,Zxing,Qr Code,Runtimeexception,我有一个应用程序上传到谷歌播放。该应用程序应该扫描一个杆子上的二维码来登记访问。它适用于除索尼XPERIA以外的所有设备。在Google Play开发者控制台中,我遇到了一个特别的崩溃: java.lang.RuntimeException: autoFocus failed at android.hardware.Camera.native_autoFocus(Native Method) at android.hardware.Camera.autoFocus(Camera.java:975

我有一个应用程序上传到谷歌播放。该应用程序应该扫描一个杆子上的二维码来登记访问。它适用于除索尼XPERIA以外的所有设备。在Google Play开发者控制台中,我遇到了一个特别的崩溃:

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();
}

据我所知,这是中兴的一个错误。您可以通过将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最常见的QR库之一。如果图书馆是个问题,我想(希望)现在会有人注意到。我认为问题出在我的实现上。好吧,它不是一个真正的库,这可能是问题的一部分。这是一个叫做条形码扫描器的应用程序。您刚刚从应用程序中获取了大量代码,并试图将其用作库。