Skip to main content

Troubleshooting

Before opening an issue, make sure you try the following:

iOS​

  1. Try cleaning and rebuilding everything:
    rm -rf package-lock.json && rm -rf yarn.lock && rm -rf node_modules
    rm -rf ios/Podfile.lock && rm -rf ios/Pods
    npm i # or "yarn"
    cd ios && pod repo update && pod update && pod install
  2. Check your minimum iOS version. VisionCamera requires a minimum iOS version of 11.0.
    1. Open your Podfile
    2. Make sure platform :ios is set to 11.0 or higher
    3. Make sure iOS Deployment Target is set to 11.0 or higher (IPHONEOS_DEPLOYMENT_TARGET in project.pbxproj)
  3. Check your Swift version. VisionCamera requires a minimum Swift version of 5.2.
    1. Open project.pbxproj in a Text Editor
    2. If the LIBRARY_SEARCH_PATH value is set, make sure there is no explicit reference to Swift-5.0. If there is, remove it. See this StackOverflow answer.
    3. If the SWIFT_VERSION value is set, make sure it is set to 5.2 or higher.
  4. Make sure you have created a Swift bridging header in your project.
    1. Open your project (.xcworkspace) in Xcode
    2. Press File > New > File (⌘+N)
    3. Select Swift File and press Next
    4. Choose whatever name you want, e.g. File.swift and press Create
    5. Press Create Bridging Header when promted.
  5. If you're having runtime issues, check the logs in Xcode to find out more. In Xcode, go to View > Debug Area > Activate Console (⇧+⌘+C).
    • For errors without messages, there's often an error code attached. Look up the error code on osstatus.com to get more information about a specific error.
  6. If your Frame Processor is not running, make sure you check the native Xcode logs to find out why. Also make sure you are not using a remote JS debugger such as Google Chrome, since those don't work with JSI.

Android​

  1. Try cleaning and rebuilding everything:
    ./android/gradlew clean
    rm -rf package-lock.json && rm -rf yarn.lock && rm -rf node_modules
    npm i # or "yarn"
  2. Since the Android implementation uses the not-yet fully stable CameraX API, make sure you've browsed the CameraX issue tracker to find out if your issue is a limitation by the CameraX library even I cannot get around.
  3. Make sure you have installed the Android NDK.
  4. Make sure your minimum SDK version is 21 or higher, and target SDK version is 31 or higher. See the example's build.gradle for reference.
    1. Open your build.gradle
    2. Set buildToolsVersion to 30.0.0 or higher
    3. Set compileSdkVersion to 31 or higher
    4. Set targetSdkVersion to 31 or higher
    5. Set minSdkVersion to 21 or higher
    6. Set ndkVersion to "20.1.5948944" or higher
    7. Update the Gradle Build-Tools version to 4.1.2 or higher:
      classpath("com.android.tools.build:gradle:4.1.2")
  5. Make sure your Gradle Wrapper version is 6.5 or higher. In gradle-wrapper.properties, set:
    distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
  6. If you're having runtime issues, check the logs in Android Studio/Logcat to find out more. In Android Studio, go to View > Tool Windows > Logcat (⌘+6) or run adb logcat in Terminal.
  7. If a camera device is not being returned by Camera.getAvailableCameraDevices(), make sure it is a Camera2 compatible device. See this section in the Android docs for more information.
  8. If your Frame Processor is not running, make sure you check the native Android Studio/Logcat logs to find out why. Also make sure you are not using a remote JS debugger such as Google Chrome, since those don't work with JSI.

Issues​

If nothing has helped so far, try browsing the GitHub issues. If your issue doesn't exist, create a new one. Make sure to fill out the template and include as many details as possible. Also try to reproduce the issue in the example app.