Cordova camera plugin not launching camera

I’m using Ionic4 on Angular with Capacitor and the Cordova Camera Plugin. I installed the plugin as instructed on the Capacitor docs:

npm install cordova-plugin-name
npx cap sync

Everything builds fine, it’s only when I try to invoke the getPicture method that I get an issue.

Here’s the relevant code from my component:

Import

import { Camera, CameraOptions } from '@ionic-native/camera/ngx';

Within my component class:

cameraOptions: CameraOptions = {
  destinationType: this.camera.DestinationType.FILE_URI,
  mediaType: this.camera.MediaType.VIDEO,
};

onPickVideo() {
  if (this.platform.is('cordova')) {
    this.camera
      .getPicture(this.cameraOptions)
      .then(videoData => {
        console.log(videoData);
      })
      .catch(err => {
        this.filePickerRef.nativeElement.click();
        console.log(err);
      });
  } else {
    this.filePickerRef.nativeElement.click();
  }
}

I can provide the Ionic project config.xml on request.

I run a development server using ionic capacitor run android -l --external --consolelogs

When I press the button that invokes onPickVideo() I get the following output in Android Studio’s Logcat at Warn level:

2019-11-17 20:00:04.958 30163-30362/io.ionic.starter W/System.err: java.lang.ClassNotFoundException: org.apache.cordova.camera.CameraLauncher
2019-11-17 20:00:04.959 30163-30362/io.ionic.starter W/System.err:     at java.lang.Class.classForName(Native Method)
2019-11-17 20:00:04.959 30163-30362/io.ionic.starter W/System.err:     at java.lang.Class.forName(Class.java:453)
2019-11-17 20:00:04.959 30163-30362/io.ionic.starter W/System.err:     at java.lang.Class.forName(Class.java:378)
2019-11-17 20:00:04.959 30163-30362/io.ionic.starter W/System.err:     at org.apache.cordova.PluginManager.instantiatePlugin(PluginManager.java:489)
2019-11-17 20:00:04.959 30163-30362/io.ionic.starter W/System.err:     at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:169)
2019-11-17 20:00:04.960 30163-30362/io.ionic.starter W/System.err:     at org.apache.cordova.PluginManager.exec(PluginManager.java:122)
2019-11-17 20:00:04.960 30163-30362/io.ionic.starter W/System.err:     at com.getcapacitor.MessageHandler.callCordovaPluginMethod(MessageHandler.java:70)
2019-11-17 20:00:04.960 30163-30362/io.ionic.starter W/System.err:     at com.getcapacitor.MessageHandler.postMessage(MessageHandler.java:46)
2019-11-17 20:00:04.960 30163-30362/io.ionic.starter W/System.err:     at android.os.MessageQueue.nativePollOnce(Native Method)
2019-11-17 20:00:04.961 30163-30362/io.ionic.starter W/System.err:     at android.os.MessageQueue.next(MessageQueue.java:326)
2019-11-17 20:00:04.961 30163-30362/io.ionic.starter W/System.err:     at android.os.Looper.loop(Looper.java:160)
2019-11-17 20:00:04.961 30163-30362/io.ionic.starter W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:65)
2019-11-17 20:00:04.962 30163-30362/io.ionic.starter W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.cordova.camera.CameraLauncher" on path: DexPathList[[zip file "/data/app/io.ionic.starter-ZK4SKTdditPynSsm_exuUQ==/base.apk"],nativeLibraryDirectories=[/data/app/io.ionic.starter-ZK4SKTdditPynSsm_exuUQ==/lib/arm64, /system/lib64, /vendor/lib64]]
2019-11-17 20:00:04.962 30163-30362/io.ionic.starter W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
2019-11-17 20:00:04.962 30163-30362/io.ionic.starter W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
2019-11-17 20:00:04.963 30163-30362/io.ionic.starter W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
2019-11-17 20:00:04.963 30163-30362/io.ionic.starter W/System.err: 	... 12 more
2019-11-17 20:00:04.966 30163-30362/io.ionic.starter E/Capacitor: Post message error:
    java.lang.NullPointerException: Attempt to invoke virtual method 'void org.apache.cordova.CordovaPlugin.privateInitialize(java.lang.String, org.apache.cordova.CordovaInterface, org.apache.cordova.CordovaWebView, org.apache.cordova.CordovaPreferences)' on a null object reference
        at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:171)
        at org.apache.cordova.PluginManager.exec(PluginManager.java:122)
        at com.getcapacitor.MessageHandler.callCordovaPluginMethod(MessageHandler.java:70)
        at com.getcapacitor.MessageHandler.postMessage(MessageHandler.java:46)
        at android.os.MessageQueue.nativePollOnce(Native Method)
        at android.os.MessageQueue.next(MessageQueue.java:326)
        at android.os.Looper.loop(Looper.java:160)
        at android.os.HandlerThread.run(HandlerThread.java:65)

Im facing the same issue here. Any updates?

I have the same problem. Any solution?