2017-11-27 4 views
0

Ich habe einige Probleme mit der ZXing-Bibliothek und bin mir sicher, dass das nur meine Schuld ist.ZXing-Bibliothek Beim Verbinden mit der Kamera ist ein Fehler aufgetreten: 0 und andere Probleme

Zunächst einmal, wenn ich meine app starten, funktioniert die App richtig, so bin ich sicher, dass ich

alle Berechtigungen haben und Probleme sind nur bei Veranstaltungen OnStop, onPause ...

I folgen einige Beispiele (wie möglich in diesem Forum zu finden), aber der folgende Code erzeugt einige Fehler

@Override 
public void onPause() { 
    super.onPause(); 
    Log.d("Pause", "pause"); 
    mScannerView.stopCameraPreview(); 
    mScannerView.stopCamera();   // Stop camera on pause 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
    Log.d("Stop", "stop"); 
    mScannerView.stopCameraPreview(); 
    mScannerView.stopCamera(); 
} 

aber jedes Mal, wenn ich den Fehler erhalten:

E/ZXingScannerView: java.lang.RuntimeException: Method called after release() 
java.lang.RuntimeException: Method called after release() 
at android.hardware.Camera.setHasPreviewCallback(Native Method) 
at android.hardware.Camera.setOneShotPreviewCallback(Camera.java:878) 
at me.dm7.barcodescanner.zxing.ZXingScannerView.onPreviewFrame(ZXingScannerView.java:153) 
    at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1187)      at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.os.HandlerThread.run(HandlerThread.java:61) 

ich schon versucht, den anruf

 mScannerView.stopCameraPreview(); 

oder

mScannerView.stopCamera(); 

und ohne mScannerView.stopCameraPreview() zu entfernen; die App funktioniert, aber ich bin mir nicht sicher, dass die Kamera wirklich in der Nähe ist und ich verschwende nicht meine Batterie

Andere Probleme passiert, wenn ich den Bildschirm drehen oder drücken Sie die Zurück-Taste, und wenn die Anwendung aktiv zurückgibt, und ich drücke erneut meine Taste, um die Kamera wieder zu öffnen. Ich habe die folgende Nachricht erhalten:

Haben Sie Vorschläge für mich?

Vielen Dank im Voraus

Antwort

0

eine Teillösung für meine Probleme. Ich füge in meinen Code folgendermaßen aus:

@Override 
public void onDestroy(){ 
    super.onDestroy(); 
    Log.e("Destroy", "destroy"); 
    mScannerView.stopCameraPreview(); 
    mScannerView.stopCamera(); 
} 

Und jetzt, wenn ich drücken Sie die Zurück-Taste ich keine Fehler in die Logcat haben, aber ich habe immer noch die Fehlermeldung über Methode nach Freigabe() aufgerufen wenn ich das Telefon drehen . Die kuriose Tatsache ist, dass dieser Fehler nicht immer passiert, aber ich verstehe nicht, was die Ursache ist.

Verwandte Themen