ratson / cordova-plugin-admob-free

New development has been moved to "admob-plus-cordova", https://github.com/admob-plus/admob-plus/tree/master/packages/cordova
https://github.com/admob-plus/admob-plus
MIT License
499 stars 214 forks source link

Crash apps after add cordova plugin firebase #237

Open khalisafkari opened 5 years ago

khalisafkari commented 5 years ago

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/zzup; at com.google.android.gms.internal.zzlc.(Unknown Source) at com.google.android.gms.internal.zzlc.(Unknown Source) at com.google.android.gms.internal.zzlc.(Unknown Source) at com.google.android.gms.ads.BaseAdView.(Unknown Source) at com.google.android.gms.ads.AdView.(Unknown Source) at name.ratson.cordova.admob.banner.BannerExecutor$1.run(BannerExecutor.java:70) at android.os.Handler.handleCallback(Handler.java) at android.os.Handler.dispatchMessage(Handler.java) at android.os.Looper.loop(Looper.java) at android.app.ActivityThread.main(ActivityThread.java) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) Caused by: java.lang.ClassNotFoundException: com.google.android.gms.internal.zzup at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742) at java.lang.ClassLoader.loadClass(ClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) ... 13 more Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/zzur; ... 13 more Caused by: java.lang.ClassNotFoundException: com.google.android.gms.internal.zzur at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742) at java.lang.ClassLoader.loadClass(ClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) ... 13 more Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/zzee; ... 13 more Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.internal.zzee" on path: DexPathList[[zip file "/data/app/com.verdauen.com.lite-1/base.apk"],nativeLibraryDirectories=[/data/app/com.verdauen.com.lite-1/lib/arm64, /system/lib64, /vendor/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) ... 13 more

merbin2012 commented 5 years ago

Same here

khalisafkari commented 5 years ago

I have successfully solved the error problem by changing the <preference name = 'PLAY_SERVICES_VERSION' default = '+' />

merbin2012 commented 5 years ago

@khalisafkari where can I find this line? I mean which file?

khalisafkari commented 5 years ago

Forlder plugin> cordova-admob-sdk>plugin.xml

merbin2012 commented 5 years ago

No use, it is not working

khalisafkari commented 5 years ago

Check your project.properties change cordova.system.library.1=com.google.android.gms:play-services-base:11.0.4 cordova.system.library.2=com.google.android.gms:play-services-ads:11.0.4 to cordova.system.library.1=com.google.android.gms:play-services-base:+ cordova.system.library.2=com.google.android.gms:play-services-ads:+

khalisafkari commented 5 years ago

My project.properties works target=android-26 android.library.reference.1=CordovaLib cordova.system.library.1=com.google.android.gms:play-services-base:+ cordova.system.library.2=com.google.android.gms:play-services-ads:+ cordova.system.library.3=com.google.android.exoplayer:exoplayer:r2.5.2 cordova.system.library.4=com.android.support:customtabs:23.3.0 cordova.system.library.5=com.squareup.picasso:picasso:2.5.2 cordova.system.library.6=com.android.support:support-v4:24.1.1+ cordova.system.library.7=com.googlecode.android-query:android-query:0.25.9 cordova.system.library.8=com.android.support:recyclerview-v7:23.4.0 cordova.system.library.9=com.android.support:mediarouter-v7:25.2.0 cordova.system.library.10=com.android.support:appcompat-v7:23.3.0 cordova.gradle.include.1=cordova-plugin-firebase/com-build.gradle cordova.system.library.11=com.google.gms:google-services:+ cordova.system.library.12=com.google.android.gms:play-services-tagmanager:+ cordova.system.library.13=com.google.firebase:firebase-core:+ cordova.system.library.14=com.google.firebase:firebase-messaging:+ cordova.system.library.15=com.google.firebase:firebase-crash:+ cordova.system.library.16=com.google.firebase:firebase-config:+ cordova.system.library.17=com.google.firebase:firebase-perf:+ cordova.system.library.18=com.onesignal:OneSignal:3.9.1 cordova.gradle.include.2=onesignal-cordova-plugin/com-build-extras-onesignal.gradle

merbin2012 commented 5 years ago

@khalisafkari Thank you very much, working perfect.

linjmeyer commented 5 years ago

Same issue for me: admob-free + firebase cordova/ionic native plugins caused the crash. Switching the android/project.properties from an exact version (11.0.4 for me) to + worked as @khalisafkari suggested.

linjmeyer commented 5 years ago

Okay so this issue isn't actually completely solved for me. While this fixed the bug on my machine, once I push to my CI/CD pipeline it re-appears. That's because I don't have /plugin or /platform directories in git which is best practice. So the APK built by the pipeline still has the explicit (bug causing) version number in project.properties.

I tried adding `

` as suggested on the home page of the project but this didn't seem to solve it either. So for now I'm building/signing APK's locally but would really prefer a permanent fix.