2016-06-07 5 views
0

Ich brauche einen unabhängigen QR-Scanner in meiner App, so habe ich die Zxing-Bibliothek meiner Android App hinzugefügt - ich habe diese link - Ich habe die Abhängigkeiten in Build hinzugefügt .gradle, und das ist, wie ich die Methode nennen:NullPointerException mit Zxing-Bibliothek für QR-Scan (Android App)

btnScanQR.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      new IntentIntegrator(MainScreenActivity.this).initiateScan(); // `this` is the current Activity 
     } 
    }); 

// Get the results: 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); 
    if(result != null) { 
     if(result.getContents() == null) { 
      Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show(); 
     } else { 
      Toast.makeText(this, "Scanned: " + result.getContents(), Toast.LENGTH_LONG).show(); 
     } 
    } else { 
     super.onActivityResult(requestCode, resultCode, data); 
    } 
} 

so genau es ist im Grunde wie auf ihrer github Seite, so sollte es keine Probleme geben, nicht wahr?

Allerdings bekomme ich diesen Fehler, wenn ich versuche, den Scanner durch meine App zu öffnen, und ich kann keine Lösungen online genau dieses Problem zu finden scheinen:

CameraInstance: Configuring camera 
    W/CameraManager: Failed to set rotation. 
    W/CameraManager: Camera rejected even safe-mode parameters! No configuration 
    E/CameraInstance: Failed to configure camera 

java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference 
                     at com.journeyapps.barcodescanner.camera.CameraManager.setParameters(CameraManager.java:353) 
                     at com.journeyapps.barcodescanner.camera.CameraManager.configure(CameraManager.java:139) 
                     at com.journeyapps.barcodescanner.camera.CameraInstance$4.run(CameraInstance.java:171) 
                     at android.os.Handler.handleCallback(Handler.java:739) 
                     at android.os.Handler.dispatchMessage(Handler.java:95) 
                     at android.os.Looper.loop(Looper.java:148) 
                     at android.os.HandlerThread.run(HandlerThread.java:61) 
    D/CameraPreview: pause() 
    D/CameraInstance: Closing camera 
    D/CameraPreview: pause() 

Was ist die Ursache dafür ist (Ist es, weil es nicht rotiert?) und wie könnte ich das beheben? Ich habe versucht, die Ausrichtung zu ändern, wie es auf zxings github Seite mit diesem sagt:

<activity 
    android:name="com.journeyapps.barcodescanner.CaptureActivity" 
    android:screenOrientation="fullSensor" 
    tools:replace="screenOrientation" /> 


IntentIntegrator integrator = new IntentIntegrator(this); 
integrator.setOrientationLocked(false); 
integrator.initiateScan(); 

Aber ich bekomme immer den gleichen Fehler! Bitte helfen :(

+0

überprüfen Sie diese https://github.com/dm77/barcodescanner – dindinii

+0

Ich hatte das gleiche Problem. Wenn Sie diesen Code eingeben: 'MobileBarcodeScanner.Initialize (Application);' in _onCreate_ in _MainActivity.cs_ Sie können die Kamera ohne Ausnahmen zugreifen. – Adriano

Antwort

1

Nach zwei Gründe für diesen Fehler: 1) Sie haben nicht initialisiert Kamera:

mcamera = mcamera.open(); 

2) Sie haben in AndroidManifest.xml Datei nicht gegeben Berechtigungen.

<uses-permission android:name="android.permission.CAMERA"/> 
Verwandte Themen