darryncampbell / darryncampbell-cordova-plugin-intent

General purpose intent shim layer for cordova appliations on Android. Handles various techniques for sending and receiving intents.
MIT License
86 stars 134 forks source link

Didn't find class "com.darryncampbell.cordova.plugin.intent.IntentShim" #84

Closed youngdolphin closed 4 years ago

youngdolphin commented 4 years ago

I tried to install this plugin on my project just with the Ionic doc

ionic cordova plugin add com-darryncampbell-cordova-plugin-intent npm install @ionic-native/web-intent

Then i run npm run build and cap copy android. But when i try to run the app with Android Studio i get the following error:

W/System.err: java.lang.ClassNotFoundException: com.darryncampbell.cordova.plugin.intent.IntentShim W/System.err: at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:400) at java.lang.Class.forName(Class.java:326) at org.apache.cordova.PluginManager.instantiatePlugin(PluginManager.java:489) at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:169) at org.apache.cordova.PluginManager.startupPlugins(PluginManager.java:97) at org.apache.cordova.PluginManager.init(PluginManager.java:86) at com.getcapacitor.cordova.MockCordovaWebViewImpl.init(MockCordovaWebViewImpl.java:62) at com.getcapacitor.BridgeActivity.load(BridgeActivity.java:73) at com.getcapacitor.BridgeActivity.init(BridgeActivity.java:56) at it.myapp.app.MainActivity.onCreate(MainActivity.java:16) at android.app.Activity.performCreate(Activity.java:6910) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2746) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:156) at android.app.ActivityThread.main(ActivityThread.java:6577) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.darryncampbell.cordova.plugin.intent.IntentShim" on path: DexPathList[[zip file "/data/app/it.myapp.app-1/base.apk", zip file "/data/app/it.myapp.app-1/split_lib_dependencies_apk.apk", zip file "/data/app/it.myapp.app-1/split_lib_slice_0_apk.apk", zip file "/data/app/it.myapp.app-1/split_lib_slice_1_apk.apk", zip file "/data/app/it.myapp.app-1/split_lib_slice_2_apk.apk", zip file "/data/app/it.myapp.app-1/split_lib_slice_3_apk.apk", zip file "/data/app/it.myapp.app-1/split_lib_slice_4_apk.apk", zip file "/data/app/it.myapp.app-1/split_lib_slice_5_apk.apk", zip file "/data/app/it.myapp.app-1/split_lib_slice_6_apk.apk", zip file "/data/app/it.myapp.app-1/split_lib_slice_7_apk.apk", zip file "/data/app/it.myapp.app-1/split_lib_slice_8_apk.apk", zip file "/data/app/it.myapp.app-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/it.myapp.app-1/lib/arm64, /data/app/it.myapp.app-1/base.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_dependencies_apk.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_slice_0_apk.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_slice_1_apk.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_slice_2_apk.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_slice_3_apk.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_slice_4_apk.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_slice_5_apk.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_slice_6_apk.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_slice_7_apk.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_slice_8_apk.apk!/lib/arm64-v8a, /data/app/it.myapp.app-1/split_lib_slice_9_apk.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /system/vendor/lib64, /product/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:380) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) ... 23 more I/System.out: Error adding plugin com.darryncampbell.cordova.plugin.intent.IntentShim. E/AndroidRuntime: FATAL EXCEPTION: main Process: it.myapp.app, PID: 27923 java.lang.RuntimeException: Unable to start activity ComponentInfo{it.myapp.app/it.myapp.app.MainActivity}: 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 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2793) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:156) at android.app.ActivityThread.main(ActivityThread.java:6577) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) Caused by: 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.startupPlugins(PluginManager.java:97) at org.apache.cordova.PluginManager.init(PluginManager.java:86) at com.getcapacitor.cordova.MockCordovaWebViewImpl.init(MockCordovaWebViewImpl.java:62) at com.getcapacitor.BridgeActivity.load(BridgeActivity.java:73) at com.getcapacitor.BridgeActivity.init(BridgeActivity.java:56) at it.myapp.app.MainActivity.onCreate(MainActivity.java:16) at android.app.Activity.performCreate(Activity.java:6910) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2746) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864)  at android.app.ActivityThread.-wrap12(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)  at android.os.Handler.dispatchMessage(Handler.java:105)  at android.os.Looper.loop(Looper.java:156)  at android.app.ActivityThread.main(ActivityThread.java:6577)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) 

Im using cordova 9 9.0.0 (cordova-lib@9.0.1)

I have no idea what i have done wrong. Any idea? Thanks!

darryncampbell commented 4 years ago

Are you able to run the application with the Ionic CLI?

ionic cordova run android

darryncampbell commented 4 years ago

I just reverted several breaking changes related to Android X that were present in version 1.x of this plugin and moved those changes to 2.x - you may want to try your app again

youngdolphin commented 4 years ago

Thanks for the fix, now it runs!

youngdolphin commented 4 years ago

Sorry i have to reopen this issue, i just found out that the dependency was missing from package.json and that was the reason the app was building fine. Now that I have to use the WebIntent plugin i reinstalled it again and i have this same error. I'll try to find the problem, do you have any idea on what is causing this error? (I tried with 1.3.0 and with 2.0.0 versions)

darryncampbell commented 4 years ago

Hi, I don't really know I'm afraid - to give some background the Ionic Native / WebIntent component wrapped this plugin without communicating with me... which is fine since this plugin is released under MIT but does mean I am not very familiar with Ionic Native. Can you try using the plugin directly?

cordova plugin add com-darryncampbell-cordova-plugin-intent@1.3.0

youngdolphin commented 4 years ago

I don't really know why but it worked with version 1.2.0, so i'm happy for now, thanks!