Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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
Java Android-ZXing扫描仪错误,停止相机内部暂停_Java_Android_Bluetooth_Zxing - Fatal编程技术网

Java Android-ZXing扫描仪错误,停止相机内部暂停

Java Android-ZXing扫描仪错误,停止相机内部暂停,java,android,bluetooth,zxing,Java,Android,Bluetooth,Zxing,我有一个应用程序,需要ZXing扫描仪,扫描仪正在工作,但有一个错误。我有一个打开扫描视图的按钮 mScannerView = new ZXingScannerView(MainActivity.this); setContentView(mScannerView); mScannerView.setResultHandler(MainActivity.this); mScannerView.startCamera(); 下面是处理结果的方法 @Override public void

我有一个应用程序,需要ZXing扫描仪,扫描仪正在工作,但有一个错误。我有一个打开扫描视图的按钮

 mScannerView = new ZXingScannerView(MainActivity.this);
 setContentView(mScannerView);
 mScannerView.setResultHandler(MainActivity.this);
 mScannerView.startCamera();
下面是处理结果的方法

@Override
public void handleResult(final Result rawResult) {

    Log.e("handler", rawResult.getText());
    Log.e("handler", rawResult.getBarcodeFormat().toString());
    final String result = rawResult.getText();

    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Scan Result");
    builder.setCancelable(false);
    builder.setMessage(result);
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Intent intent = new Intent(MainActivity.this, BalanceActivity.class);
            intent.putExtra("result", result);
            startActivity(intent);
        }
    });
    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}
BalanceActivity打开蓝牙连接

这是我的暂停

 @Override
public void onPause() {
    super.onPause();
    mScannerView.stopCamera(); //this is where the error points in
}
这是我的错误日志

 FATAL EXCEPTION: main
 Process: com.busticketing.busticketing, PID: 16103
 java.lang.RuntimeException: Unable to pause activity {com.busticketing.busticketing/com.busticketing.busticketing.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void me.dm7.barcodescanner.zxing.ZXingScannerView.stopCamera()' on a null object reference
 at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3659)
 at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3618)
 at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3593)
 at android.app.ActivityThread.access$1100(ActivityThread.java:172)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1433)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:145)
 at android.app.ActivityThread.main(ActivityThread.java:5832)
 at java.lang.reflect.Method.invoke(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:372)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void me.dm7.barcodescanner.zxing.ZXingScannerView.stopCamera()' on a null object reference
 at com.busticketing.busticketing.MainActivity.onPause(MainActivity.java:160)
 at android.app.Activity.performPause(Activity.java:6373)
 at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1308)
 at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3645)
 at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3618) 
 at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3593) 
 at android.app.ActivityThread.access$1100(ActivityThread.java:172) 
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1433) 
 at android.os.Handler.dispatchMessage(Handler.java:102) 
 at android.os.Looper.loop(Looper.java:145) 
 at android.app.ActivityThread.main(ActivityThread.java:5832) 
 at java.lang.reflect.Method.invoke(Native Method) 
 at java.lang.reflect.Method.invoke(Method.java:372) 
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

应用程序运行良好,但每次我点击打开ZXing的按钮时,都会出现“不幸的是,ApplicationName已停止”错误,但会继续进行下一个活动,并且运行良好。我想知道是什么导致了这个错误。提前谢谢。

您使用了on start()方法吗?没有onStart(),我只是使用了onCreate()和onPause()打开摄像头onStart(),这可能就是问题所在维护整个活动生命周期我将stopCamera()放在HandlerResult类的onClick事件中。它现在工作得很好=)