ideacreation / react-native-barcodescanner

A barcode scanner component for react native - not maintained anymore - use react-native-camera
MIT License
537 stars 162 forks source link

Black Screen running on android device #70

Open akhmadh opened 7 years ago

akhmadh commented 7 years ago

Hi everyone,

I got problem with black screen when I run on android device. Here is mu dependency installed : "dependencies": { "react": "15.4.1", "react-native": "0.39.2", "react-native-barcode-scanner-universal": "^1.0.5", "react-native-barcodescanner": "jiaminglu/react-native-barcodescanner", "react-native-camera": "git+https://github.com/lwansbrough/react-native-camera.git" }

Device spec is: Android Version 4.3, Xiaomi screenshot_2016-12-23-15-40-05

liuxiaoy commented 7 years ago

Hi,I have this problem too.I have test it in MI3 4.4 and HUAWEI P9.It will happen when open the camera firstly. Oh I have remove some startCamera function. The logcat output: E/Camera: Camera new cameraInitNormal:0

MarsWgl commented 7 years ago

+1

ahmetacikgoz commented 7 years ago

+1

liuxiaoy commented 7 years ago

I have resolve it long ago.you can try it again accordding to that on below: File1:com.eguma.barcodescanner.ReactBarcodeScannerView ... public void setCameraType(String type) { if (mPrevCameraType.equals(type)) { return; } // stopCamera();

    Camera.CameraInfo cameraInfo = new Camera.CameraInfo();

    mCameraId = -1;

    for (int cameraId = 0; cameraId < Camera.getNumberOfCameras(); cameraId++) {
        Camera.getCameraInfo(cameraId, cameraInfo);

        if (type.equals("back") && cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
            mCameraId = cameraId;
            break;
        }

        if (type.equals("front") && cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
            mCameraId = cameraId;
            break;
        }
    }

// startCamera(mCameraId); // // if (type.equals("back")) { // setFlash(torchModeIsEnabled()); // }

    mPrevCameraType = type;
}

@Override public void handleResult(Result result) { WritableMap event = Arguments.createMap();

    event.putString("data", result.getText());
    event.putString("type", result.getBarcodeFormat().toString());

    ReactContext reactContext = (ReactContext) getContext();

    reactContext.getJSModule(RCTEventEmitter.class).receiveEvent(
        getId(),
        "topChange",
        event
    );

// startCamera(mCameraId); // setFlash(torchModeIsEnabled()); } ... File2:com.eguma.barcodescanner.ReactBarcodeScannerManager ... ThemedReactContext mThemedReactContext; @Override public ReactBarcodeScannerView createViewInstance(ThemedReactContext context) { context.addLifecycleEventListener(this); mThemedReactContext = context; mScannerView = new ReactBarcodeScannerView(context); mScannerView.setMaskColor(DEFAULT_VIEWFINDER_BACKGROUND_COLOR); mScannerView.setBorderColor(DEFAULT_VIEWFINDER_BORDER_COLOR); mScannerView.setBorderStrokeWidth(DEFAULT_VIEWFINDER_BORDER_WIDTH); mScannerView.setBorderLineLength(DEFAULT_VIEWFINDER_BORDER_LENGTH); mScannerView.setDrawLaser(DEFAULT_VIEWFINDER_DRAW_LASER); mScannerView.setLaserColor(DEFAULT_VIEWFINDER_LASER_COLOR); mScannerView.setCameraType(DEFAULT_CAMERA_TYPE); mScannerView.setTorchMode(DEFAULT_TORCH_MODE); mScannerViewVisible = true; mScannerView.startCamera(); mScannerView.stopCamera(); return mScannerView; }

gsteyn commented 7 years ago

+1