2016-06-07 9 views
0

Мне нужен отдельный QR-сканер в моем приложении, поэтому я добавил библиотеку zxing в свое приложение для Android. Я следил за этим link. Я добавил зависимости в сборке .gradle, и это, как я вызываю метод:NullPointerException с библиотекой zxing для QR-сканирования (приложение для Android)

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); 
    } 
} 

так что это в основном так же, как на своей странице GitHub, так что не должно быть никаких проблем, не так ли?

Однако, я получаю эту ошибку, когда я пытаюсь открыть сканер через мое приложение, и я не могу найти какое-либо решение в Интернете для этой конкретной проблемы:

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() 

Что является причиной этого (это потому, что он не вращается?) и как я могу это исправить? Я попытался изменить ориентацию, как он говорит на zxings GitHub странице с этим:

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


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

Но я получаю ту же ошибку! Пожалуйста, помогите :(

+0

проверить это https://github.com/dm77/barcodescanner – dindinii

+0

я была такая же проблема. Если вы вставляете этот код: 'MobileBarcodeScanner.Initialize (Application);' в _onCreate_ в _MainActivity.cs_ вы сможете получить доступ к камере без исключений. – Adriano

ответ

1

После двух причин этой ошибки: 1) Вы не инициализируетесь камера:

mcamera = mcamera.open(); 

2) Вы не дали разрешение в AndroidManifest.xml файла.

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