Java Android-ZXing扫描仪错误,停止相机内部暂停
我有一个应用程序,需要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
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事件中。它现在工作得很好=)