deckameron / Ti.Android.Admob

Appcelerator Android module wrapping Admob functionalities
17 stars 7 forks source link

Failed resolution of Lcom/google/.../RewardedVideoAdListener #16

Closed MeteoryWeb closed 4 years ago

MeteoryWeb commented 4 years ago

With ti.playservice v. 16.0+ my app crashing and appear the error on the attached image. crash appc

With ti.playservice v. 11.0.40, my app not crashing but in console as [INFO] appears this:

Rejecting re-init on previously-failed class java.lang.Class<ti.android.admob.AdmobView$2>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/ads/formats/UnifiedNativeAd$OnUnifiedNativeAdLoadedListener; at org.appcelerator.titanium.view.TiUIView ti.android.admob.ViewProxy.createView(android.app.Activity) (ViewProxy.java:38) at org.appcelerator.titanium.view.TiUIView org.appcelerator.titanium.proxy.TiViewProxy.handleGetView() (TiViewProxy.java:492) at org.appcelerator.titanium.view.TiUIView org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView() (TiViewProxy.java:464) at void org.appcelerator.titanium.proxy.TiViewProxy.add(java.lang.Object) (TiViewProxy.java:604) at boolean org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(long, java.lang.Object, long, java.lang.String, java.lang.Object, boolean, boolean, int, java.lang.String) (V8Object.java:-2) at boolean org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(org.appcelerator.kroll.KrollObject, java.lang.String, java.lang.Object, boolean, boolean, int, java.lang.String) (V8Object.java:63) at boolean org.appcelerator.kroll.KrollProxy.doFireEvent(java.lang.String, java.lang.Object) (KrollProxy.java:976) at boolean org.appcelerator.kroll.KrollProxy.handleMessage(android.os.Message) (KrollProxy.java:1256) at boolean org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(android.os.Message) (TiViewProxy.java:267) at boolean ti.modules.titanium.ui.WindowProxy.handleMessage(android.os.Message) (WindowProxy.java:504) at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:108) at void android.os.Looper.loop() (Looper.java:216) at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7625) at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:524) at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:987) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.formats.UnifiedNativeAd$OnUnifiedNativeAdLoadedListener" on path: DexPathList[[zip file "/data/app/-Y3xYKN9rDTRcCFh018dqWQ==/base.apk"],nativeLibraryDirectories=[/data/app/-Y3xYKN9rDTRcCFh018dqWQ==/lib/arm64, /data/app/***-Y3xYKN9rDTRcCFh018dqWQ==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134) at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379) at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) at org.appcelerator.titanium.view.TiUIView ti.android.admob.ViewProxy.createView(android.app.Activity) (ViewProxy.java:38) at org.appcelerator.titanium.view.TiUIView org.appcelerator.titanium.proxy.TiViewProxy.handleGetView() (TiViewProxy.java:492) at org.appcelerator.titanium.view.TiUIView org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView() (TiViewProxy.java:464) at void org.appcelerator.titanium.proxy.TiViewProxy.add(java.lang.Object) (TiViewProxy.java:604) at boolean org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(long, java.lang.Object, long, java.lang.String, java.lang.Object, boolean, boolean, int, java.lang.String) (V8Object.java:-2) at boolean org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(org.appcelerator.kroll.KrollObject, java.lang.String, java.lang.Object, boolean, boolean, int, java.lang.String) (V8Object.java:63) at boolean org.appcelerator.kroll.KrollProxy.doFireEvent(java.lang.String, java.lang.Object) (KrollProxy.java:976) at boolean org.appcelerator.kroll.KrollProxy.handleMessage(android.os.Message) (KrollProxy.java:1256) at boolean org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(android.os.Message) (TiViewProxy.java:267) at boolean ti.modules.titanium.ui.WindowProxy.handleMessage(android.os.Message) (WindowProxy.java:504) at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:108) at void android.os.Looper.loop() (Looper.java:216) at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7625) at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:524) at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:987)

Rejecting re-init on previously-failed class java.lang.Class<ti.android.admob.AdmobView$2>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/ads/formats/UnifiedNativeAd$OnUnifiedNativeAdLoadedListener; at org.appcelerator.titanium.view.TiUIView ti.android.admob.ViewProxy.createView(android.app.Activity) (ViewProxy.java:38) at org.appcelerator.titanium.view.TiUIView org.appcelerator.titanium.proxy.TiViewProxy.handleGetView() (TiViewProxy.java:492) at org.appcelerator.titanium.view.TiUIView org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView() (TiViewProxy.java:464) at void org.appcelerator.titanium.proxy.TiViewProxy.add(java.lang.Object) (TiViewProxy.java:604) at boolean org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(long, java.lang.Object, long, java.lang.String, java.lang.Object, boolean, boolean, int, java.lang.String) (V8Object.java:-2) at boolean org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(org.appcelerator.kroll.KrollObject, java.lang.String, java.lang.Object, boolean, boolean, int, java.lang.String) (V8Object.java:63) at boolean org.appcelerator.kroll.KrollProxy.doFireEvent(java.lang.String, java.lang.Object) (KrollProxy.java:976) at boolean org.appcelerator.kroll.KrollProxy.handleMessage(android.os.Message) (KrollProxy.java:1256) at boolean org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(android.os.Message) (TiViewProxy.java:267) at boolean ti.modules.titanium.ui.WindowProxy.handleMessage(android.os.Message) (WindowProxy.java:504) at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:108) at void android.os.Looper.loop() (Looper.java:216) at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7625) at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:524) at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:987) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.formats.UnifiedNativeAd$OnUnifiedNativeAdLoadedListener" on path: DexPathList[[zip file "/data/app/-Y3xYKN9rDTRcCFh018dqWQ==/base.apk"],nativeLibraryDirectories=[/data/app/-Y3xYKN9rDTRcCFh018dqWQ==/lib/arm64, /data/app/***-Y3xYKN9rDTRcCFh018dqWQ==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134) at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379) at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) at org.appcelerator.titanium.view.TiUIView ti.android.admob.ViewProxy.createView(android.app.Activity) (ViewProxy.java:38) at org.appcelerator.titanium.view.TiUIView org.appcelerator.titanium.proxy.TiViewProxy.handleGetView() (TiViewProxy.java:492) at org.appcelerator.titanium.view.TiUIView org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView() (TiViewProxy.java:464) at void org.appcelerator.titanium.proxy.TiViewProxy.add(java.lang.Object) (TiViewProxy.java:604) at boolean org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(long, java.lang.Object, long, java.lang.String, java.lang.Object, boolean, boolean, int, java.lang.String) (V8Object.java:-2) at boolean org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(org.appcelerator.kroll.KrollObject, java.lang.String, java.lang.Object, boolean, boolean, int, java.lang.String) (V8Object.java:63) at boolean org.appcelerator.kroll.KrollProxy.doFireEvent(java.lang.String, java.lang.Object) (KrollProxy.java:976) at boolean org.appcelerator.kroll.KrollProxy.handleMessage(android.os.Message) (KrollProxy.java:1256) at boolean org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(android.os.Message) (TiViewProxy.java:267) at boolean ti.modules.titanium.ui.WindowProxy.handleMessage(android.os.Message) (WindowProxy.java:504) at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:108) at void android.os.Looper.loop() (Looper.java:216) at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7625) at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:524) at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:987)

At the moment I use ti.playservice v. 11.0.40 but I would like use last version and resolving this problem. My device is Huawei Honor View 20.

deckameron commented 4 years ago

With ti.playservice v. 16.0+ my app crashing and appear the error on the attached image.

Hi @MeteoryWeb have you tried using specifically Play Services 6.1.3? That is the version I am using on my projects right now. I am using module version 5.1.2 and Play Services 6.1.3.

Could you please test it and let me know.

MeteoryWeb commented 4 years ago

With ti.playservice v. 16.0+ my app crashing and appear the error on the attached image.

Hi @MeteoryWeb have you tried using specifically Play Services 6.1.3? That is the version I am using on my projects right now. I am using module version 5.1.2 and Play Services 6.1.3.

Could you please test it and let me know.

Hi deckameron. Thanks for your response. The error persist also with Play Service 16.1.3. In addition I would say that the error is present also in emulator. I reduce the code and isolate the problem and I found that the line that fires the error is $.index.add(bannerAd); where bannerAd is:

var bannerAd = Alloy.Globals.Admob.module.createView({ top: 0, adSizeType: 'BANNER', publisherId: 'xxxxxxxxxxx/yyyyyy', testing: true });

like the example of this module. I have try even with:

var admob = require("ti.android.admob"); var bannerAd = this.module.createView({ extras : { 'npa' : '1' }, viewType : admob .TYPE_ADS, adSizeType: admob .BANNER, testDeviceId : '3C7DEA1F8B801F773EC10E36A7909ABF', adUnitId: 'ca-app-pub-3940256099942544/6300978111', });

but the error persist.

deckameron commented 4 years ago

Hi @MeteoryWeb!

Could you please add these lines to you application tag inside your android manifest tag on Tiapp.xml

<meta-data android:name="com.google.android.gms.ads.AD_MANAGER_APP" android:value="true"/>

And also download and test this project on your machine.

MeteoryWeb commented 4 years ago

Hi @MeteoryWeb!

Could you please add these lines to you application tag inside your android manifest tag on Tiapp.xml

<meta-data android:name="com.google.android.gms.ads.AD_MANAGER_APP" android:value="true"/>

And also download and test this project on your machine.

Hi @deckameron , I added this line in my tiapp.xml inside the manifest tag but the info message always appears. I don't have the permissions for download the file you have uploaded.

deckameron commented 4 years ago

I am sorry for blocked link. Try this one please.

MeteoryWeb commented 4 years ago

I am sorry for blocked link. Try this one please.

I installed your test app on my device. compiling seems good but on launch this runtime error appears: [ERROR] : TiExceptionHandler: (main) [44,92] Failed resolution of: Lcom/google/android/gms/ads/reward/RewardedVideoAdListener; [ERROR] : TiExceptionHandler: [ERROR] : TiExceptionHandler: dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134) [ERROR] : TiExceptionHandler: java.lang.ClassLoader.loadClass(ClassLoader.java:379) [ERROR] : TiExceptionHandler: java.lang.ClassLoader.loadClass(ClassLoader.java:312) [ERROR] : TiExceptionHandler: java.lang.Class.newInstance(Native Method) [ERROR] : TiExceptionHandler: org.appcelerator.kroll.KrollProxy.createProxy(KrollProxy.java:136) [ERROR] : TiExceptionHandler: org.appcelerator.kroll.runtime.v8.V8Runtime.nativeRunModule(Native Method) [ERROR] : TiExceptionHandler: org.appcelerator.kroll.runtime.v8.V8Runtime.doRunModule(V8Runtime.java:168) [ERROR] : TiExceptionHandler: org.appcelerator.kroll.KrollRuntime.runModule(KrollRuntime.java:225) [ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiLaunchActivity.loadScript(TiLaunchActivity.java:107) [ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiRootActivity.loadScript(TiRootActivity.java:480) [ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiLaunchActivity.onResume(TiLaunchActivity.java:192) [ERROR] : TiExceptionHandler: org.appcelerator.titanium.TiRootActivity.onResume(TiRootActivity.java:499) [ERROR] : TiExceptionHandler: android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1456) [ERROR] : TiExceptionHandler: android.app.Activity.performResume(Activity.java:7614) [ERROR] : TiExceptionHandler: android.app.ActivityThread.performResumeActivity(ActivityThread.java:4412) [ERROR] : TiExceptionHandler: android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4470) [ERROR] : TiExceptionHandler: android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51) [ERROR] : TiExceptionHandler: android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145) [ERROR] : TiExceptionHandler: android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) [ERROR] : TiExceptionHandler: android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199) [ERROR] : TiExceptionHandler: android.os.Handler.dispatchMessage(Handler.java:112) [ERROR] : TiExceptionHandler: android.os.Looper.loop(Looper.java:216) [ERROR] : TiExceptionHandler: android.app.ActivityThread.main(ActivityThread.java:7625) [ERROR] : TiExceptionHandler: java.lang.reflect.Method.invoke(Native Method) [ERROR] : TiExceptionHandler: com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) [ERROR] : TiExceptionHandler: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)

deckameron commented 4 years ago

Hi @MeteoryWeb,

Try this:

Folders

MeteoryWeb commented 4 years ago

Hi @MeteoryWeb,

Try this:

* Download [PlayServices Ads Lite](https://maven.google.com/com/google/android/gms/play-services-ads-lite/17.2.0/play-services-ads-lite-17.2.0.aar)

* Place it in the lib folder of the module along side with the Consent Library OR place it on the lib folder of the 16.1.3 Play Services module.

I have download PlayServices Ads Lite. First I've put it in lib folder of the module. I have try to run the app with these PlayService versions:

I have also try to put PlayServices Ads Lite in the path described of your screen but the app instantly closes after launch.

I dont know what can be.