angular - java.lang.ClassNotFoundException: com.synconset.ImagePicker
问题描述
请帮我!我有一个 ionic 项目,我安装了带有电容器的 Imagepicker 插件(https://ionicframework.com/docs/native/image-picker)。我建立了这个项目。我正在从 Android Studio 在移动设备上进行仿真,我想要的是能够从设备库中选择图像,但是当我单击选择图像按钮时,会出现以下错误:
2020-04-08 23:10:11.126 14266-14405/io.ionic.starter V/Capacitor/Plugin: To native (Cordova plugin): callbackId: ImagePicker1627263557, service: ImagePicker, action: getPictures, actionArgs: [{"maximumImagesCount":1,"width":0,"height":0,"quality":50,"allow_video":false,"title":"Select an Album","message":null,"outputType":1,"disable_popover":false}]
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: java.lang.ClassNotFoundException: com.synconset.ImagePicker
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at java.lang.Class.classForName(Native Method)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at java.lang.Class.forName(Class.java:454)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at java.lang.Class.forName(Class.java:379)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at org.apache.cordova.PluginManager.instantiatePlugin(PluginManager.java:489)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:169)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at org.apache.cordova.PluginManager.exec(PluginManager.java:122)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at com.getcapacitor.MessageHandler.callCordovaPluginMethod(MessageHandler.java:70)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at com.getcapacitor.MessageHandler.postMessage(MessageHandler.java:46)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at android.os.MessageQueue.nativePollOnce(Native Method)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at android.os.MessageQueue.next(MessageQueue.java:336)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at android.os.Looper.loop(Looper.java:174)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at android.os.HandlerThread.run(HandlerThread.java:67)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.synconset.ImagePicker" on path: DexPathList[[zip file "/data/app/io.ionic.starter-aXQ2v-R9ZXz3eZr4UBPlRQ==/base.apk"],nativeLibraryDirectories=[/data/app/io.ionic.starter-aXQ2v-R9ZXz3eZr4UBPlRQ==/lib/x86, /system/lib, /system/product/lib]]
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
2020-04-08 23:10:11.127 14266-14405/io.ionic.starter W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
2020-04-08 23:10:11.128 14266-14405/io.ionic.starter W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
2020-04-08 23:10:11.128 14266-14405/io.ionic.starter W/System.err: ... 12 more
2020-04-08 23:10:11.128 14266-14405/io.ionic.starter I/System.out: Error adding plugin com.synconset.ImagePicker.
2020-04-08 23:10:11.128 14266-14405/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:336)
at android.os.Looper.loop(Looper.java:174)
at android.os.HandlerThread.run(HandlerThread.java:67)
```
解决方案
这似乎是 ImagePicker 的一个已知问题 - 请参见此处。
一些解决方法似乎是:
从 package.json 中删除单行 "com.synconset.imagepicker": "~2.1.8"。并且“com.synconset.imagepicker”:{“PHOTO_LIBRARY_USAGE_DESCRIPTION”:“添加多张照片”}在执行以下命令时显示警告:cordova platform add android和cordova run android。
推荐阅读
- lua - 匹配字符集中的多个符号
- kotlin - 是否有标准的 Kotlin 函数将序列拆分为头部和尾部?
- django - 我们如何在 django 和 bootstrap 中验证 gmail 帐户的注册页面上显示成功消息?
- string - 在 Excel 中以逗号分隔数字的单元格中查找一系列缺失的数字
- python - DQN 不学习
- android - Android MediaRecorder 创建 16 位 PCM 编码的音频文件
- c# - 您可以将旧版本的 xml 反序列化为更新的结构吗
- java - 从 .jar 启动脚本
- python - 如何在numpy(RGBA)中正确创建空白彩色图像
- php - 文件名在 Web 服务器上的解释与在 Localhost 上的解释不同