Android 使用ZXing时Xperia设备上的运行时异常
我有一个应用程序上传到谷歌播放。该应用程序应该扫描一个杆子上的二维码来登记访问。它适用于除索尼XPERIA以外的所有设备。在Google Play开发者控制台中,我遇到了一个特别的崩溃: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
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库之一。如果图书馆是个问题,我想(希望)现在会有人注意到。我认为问题出在我的实现上。好吧,它不是一个真正的库,这可能是问题的一部分。这是一个叫做条形码扫描器的应用程序。您刚刚从应用程序中获取了大量代码,并试图将其用作库。