mrousavy / react-native-vision-camera

📸 A powerful, high-performance React Native Camera library.
https://react-native-vision-camera.com
MIT License
7.17k stars 1.05k forks source link

❓ Do I need to include mlkit manually to use frameprocessors (vision-camera-face-detector)? #1014

Closed bekatd closed 10 months ago

bekatd commented 2 years ago

Question

Android app crashes immediately upon launch with following crash log:

04-23 12:40:51.951  8076  8140 E AndroidRuntime: FATAL EXCEPTION: create_react_context
04-23 12:40:51.951  8076  8140 E AndroidRuntime: Process: com.aidgenomics.aidg, PID: 8076
04-23 12:40:51.951  8076  8140 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/mlkit/vision/common/internal/Detector;
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at com.visioncamerafacedetector.VisionCameraFaceDetectorPluginPackage.createNativeModules(VisionCameraFaceDetectorPluginPackage.java:19)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at com.facebook.react.ReactPackageHelper.getNativeModuleIterator(ReactPackageHelper.java:42)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at com.facebook.react.NativeModuleRegistryBuilder.processPackage(NativeModuleRegistryBuilder.java:42)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at com.facebook.react.ReactInstanceManager.processPackage(ReactInstanceManager.java:1347)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at com.facebook.react.ReactInstanceManager.processPackages(ReactInstanceManager.java:1318)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1240)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at com.facebook.react.ReactInstanceManager.access$1100(ReactInstanceManager.java:131)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1023)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at java.lang.Thread.run(Thread.java:919)
04-23 12:40:51.951  8076  8140 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.mlkit.vision.common.internal.Detector" on path: DexPathList[[zip file "/data/app/com.aidgenomics.aidg-SjpfsrTCDS3zK4kYfxu1xA==/base.apk"],nativeLibraryDirectories=[/data/app/com.aidgenomics.aidg-SjpfsrTCDS3zK4kYfxu1xA==/lib/arm64, /data/app/com.aidgenomics.aidg-SjpfsrTCDS3zK4kYfxu1xA==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /system/product/lib64]]
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
04-23 12:40:51.951  8076  8140 E AndroidRuntime:        ... 9 more
04-23 12:41:01.846  8170  8260 E AndroidRuntime: FATAL EXCEPTION: create_react_context
04-23 12:41:01.846  8170  8260 E AndroidRuntime: Process: com.aidgenomics.aidg, PID: 8170
04-23 12:41:01.846  8170  8260 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/mlkit/vision/common/internal/Detector;
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at com.visioncamerafacedetector.VisionCameraFaceDetectorPluginPackage.createNativeModules(VisionCameraFaceDetectorPluginPackage.java:19)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at com.facebook.react.ReactPackageHelper.getNativeModuleIterator(ReactPackageHelper.java:42)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at com.facebook.react.NativeModuleRegistryBuilder.processPackage(NativeModuleRegistryBuilder.java:42)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at com.facebook.react.ReactInstanceManager.processPackage(ReactInstanceManager.java:1347)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at com.facebook.react.ReactInstanceManager.processPackages(ReactInstanceManager.java:1318)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1240)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at com.facebook.react.ReactInstanceManager.access$1100(ReactInstanceManager.java:131)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1023)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at java.lang.Thread.run(Thread.java:919)
04-23 12:41:01.846  8170  8260 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.mlkit.vision.common.internal.Detector" on path: DexPathList[[zip file "/data/app/com.aidgenomics.aidg-SjpfsrTCDS3zK4kYfxu1xA==/base.apk"],nativeLibraryDirectories=[/data/app/com.aidgenomics.aidg-SjpfsrTCDS3zK4kYfxu1xA==/lib/arm64, /data/app/com.aidgenomics.aidg-SjpfsrTCDS3zK4kYfxu1xA==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /system/product/lib64]]
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
04-23 12:41:01.846  8170  8260 E AndroidRuntime:        ... 9 more

What I tried

Do I need follow google ML Kit installation guide to use this library with frame processors? image

VisionCamera Version

2.13.0

Additional information

bekatd commented 2 years ago

I resolved crash by following google ml kit installation guide (above screenshot).

But this also should be mentioned in docs

Skipperlla commented 1 year ago

Same problem but it's solution not working for me :/

Skipperlla commented 1 year ago

Before installing it, was the application opened when running in debug mode?

luatvudinh commented 1 year ago

After days struggle with this issue. I found that you don't need to add mlkit face detection lib (on the picture above). I did these to resolve the problem.

  1. In app/build.gradle add implementation project(':visioncamerafacedetector')
  2. In settings.gradle add
    include ':visioncamerafacedetector'
    project(':visioncamerafacedetector').projectDir = new File(rootProject.projectDir, '../node_modules/vision-camera-face-detector/android')

    That's all! Hope this will be helpful

Bonus. I also use vision-camera-code-scanner so I need to add this lines into settings.gradle (don't need add tail of the path and implementation ... in app/build.gradle. Quite different from these two libs. Weird!):

include ':visioncameracodescanner'
project(':visioncameracodescanner').projectDir = new File(rootProject.projectDir, '../node_modules')
mrousavy commented 10 months ago

Closing as this is a stale issue - this might have been fixed with the full rewrite in VisionCamera V3 (🥳) - if not, please create a new issue.