2016-12-08 8 views
0

Я пытаюсь создать библиотеку привязки в Xamarin для MoPub. На самом деле у меня это отлично работает. Но теперь я хочу реализовать посредничество. Я добавил файл GooglePlayServicesBanner.java в MoPub SDK и Google Play библиотеки услуги:Попытка создать библиотеку привязки Android для MoPub

compile 'com.google.android.gms:play-services:9.4.0' 

Но независимо от того, что я делаю, связывание библиотеки не может найти «AdListener»

1>JARTOXML : warning J2X9001: Couldn't load class com/mopub/mobileads/GooglePlayServicesBanner$AdViewListener : java.lang.NoClassDefFoundError: com/google/android/gms/ads/AdListener 

Вот несколько причин, почему это может происходить:

  1. Мне нужно включить jar-файл службы google play в каталог libs в моем проекте библиотеки. Но GPS только предлагает aar, поэтому я не знаю, что с этим делать.
  2. Что-то становится раздел ProGuard
  3. Что-то тупое в моем Xamarin metadata.xml

Я застрял и, надеюсь, кто-то имеет некоторое представление. Благодаря!

Здесь находится Xatarin stacktrace при попытке отображения объявления Admob.

12-08 15:26:32.886 D/MoPub (3378): Loading custom event adapter. 
12-08 15:26:32.886 D/MoPub (3378): Attempting to invoke custom event: com.mopub.mobileads.GooglePlayServicesBanner 
12-08 15:26:32.891 I/art  (3378): Rejecting re-init on previously-failed class java.lang.Class<com.mopub.mobileads.GooglePlayServicesBanner$AdViewListener>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/ads/AdListener; 
12-08 15:26:32.891 I/art  (3378): at java.lang.Class java.lang.Class.classForName!(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2) 
12-08 15:26:32.891 I/art  (3378): at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:400) 
12-08 15:26:32.891 I/art  (3378): at java.lang.Class java.lang.Class.forName(java.lang.String) (Class.java:326) 
12-08 15:26:32.891 I/art  (3378): at com.mopub.mobileads.CustomEventBanner com.mopub.mobileads.factories.CustomEventBannerFactory.internalCreate(java.lang.String) (CustomEventBannerFactory.java:20) 
12-08 15:26:32.891 I/art  (3378): at com.mopub.mobileads.CustomEventBanner com.mopub.mobileads.factories.CustomEventBannerFactory.create(java.lang.String) (CustomEventBannerFactory.java:11) 
12-08 15:26:32.891 I/art  (3378): at void com.mopub.mobileads.CustomEventBannerAdapter.<init>(com.mopub.mobileads.MoPubView, java.lang.String, java.util.Map, long, com.mopub.common.AdReport) (CustomEventBannerAdapter.java:61) 
12-08 15:26:32.891 I/art  (3378): at com.mopub.mobileads.CustomEventBannerAdapter com.mopub.mobileads.factories.CustomEventBannerAdapterFactory.internalCreate(com.mopub.mobileads.MoPubView, java.lang.String, java.util.Map, long, com.mopub.common.AdReport) (CustomEventBannerAdapterFactory.java:32) 
12-08 15:26:32.891 I/art  (3378): at com.mopub.mobileads.CustomEventBannerAdapter com.mopub.mobileads.factories.CustomEventBannerAdapterFactory.create(com.mopub.mobileads.MoPubView, java.lang.String, java.util.Map, long, com.mopub.common.AdReport) (CustomEventBannerAdapterFactory.java:24) 
12-08 15:26:32.891 I/art  (3378): at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) 
12-08 15:26:32.891 I/art  (3378): at java.lang.Object com.mopub.common.util.Reflection$MethodBuilder.execute() (Reflection.java:71) 
12-08 15:26:32.891 I/art  (3378): at void com.mopub.mobileads.MoPubView.loadCustomEvent(java.lang.String, java.util.Map) (MoPubView.java:188) 
12-08 15:26:32.891 I/art  (3378): at void com.mopub.mobileads.AdViewController.loadCustomEvent(com.mopub.mobileads.MoPubView, java.lang.String, java.util.Map) (AdViewController.java:177) 
12-08 15:26:32.891 I/art  (3378): at void com.mopub.mobileads.AdViewController.onAdLoadSuccess(com.mopub.network.AdResponse) (AdViewController.java:136) 
12-08 15:26:32.891 I/art  (3378): at void com.mopub.mobileads.AdViewController$1.onSuccess(com.mopub.network.AdResponse) (AdViewController.java:107) 
12-08 15:26:32.891 I/art  (3378): at void com.mopub.network.AdRequest.deliverResponse(com.mopub.network.AdResponse) (AdRequest.java:310) 
12-08 15:26:32.891 I/art  (3378): at void com.mopub.network.AdRequest.deliverResponse(java.lang.Object) (AdRequest.java:46) 
12-08 15:26:32.891 I/art  (3378): at void com.mopub.volley.ExecutorDelivery$ResponseDeliveryRunnable.run() (ExecutorDelivery.java:99) 
12-08 15:26:32.891 I/art  (3378): at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:751) 
12-08 15:26:32.891 I/art  (3378): at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95) 
12-08 15:26:32.891 I/art  (3378): at void android.os.Looper.loop() (Looper.java:154) 
12-08 15:26:32.891 I/art  (3378): at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6077) 
12-08 15:26:32.891 I/art  (3378): at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) 
12-08 15:26:32.891 I/art  (3378): at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:865) 
12-08 15:26:32.891 I/art  (3378): at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:755) 
12-08 15:26:32.891 I/art  (3378): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.AdListener" on path: DexPathList[[zip file "/data/app/com.kellyproductions.minechatlite-1/base.apk"],nativeLibraryDirectories=[/data/app/com.kellyproductions.minechatlite-1/lib/x86, /system/fake-libs, /data/app/com.kellyproductions.minechatlite-1/base.apk!/lib/x86, /system/lib, /vendor/lib]] 
12-08 15:26:32.891 I/art  (3378): at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56) 
12-08 15:26:32.891 I/art  (3378): at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380) 
12-08 15:26:32.891 I/art  (3378): at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) 
12-08 15:26:32.891 I/art  (3378): at java.lang.Class java.lang.Class.classForName!(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2) 
12-08 15:26:32.891 I/art  (3378): at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:400) 
12-08 15:26:32.891 I/art  (3378): at java.lang.Class java.lang.Class.forName(java.lang.String) (Class.java:326) 
12-08 15:26:32.891 I/art  (3378): at com.mopub.mobileads.CustomEventBanner com.mopub.mobileads.factories.CustomEventBannerFactory.internalCreate(java.lang.String) (CustomEventBannerFactory.java:20) 
12-08 15:26:32.891 I/art  (3378): at com.mopub.mobileads.CustomEventBanner com.mopub.mobileads.factories.CustomEventBannerFactory.create(java.lang.String) (CustomEventBannerFactory.java:11) 
12-08 15:26:32.891 I/art  (3378): at void com.mopub.mobileads.CustomEventBannerAdapter.<init>(com.mopub.mobileads.MoPubView, java.lang.String, java.util.Map, long, com.mopub.common.AdReport) (CustomEventBannerAdapter.java:61) 
12-08 15:26:32.891 I/art  (3378): at com.mopub.mobileads.CustomEventBannerAdapter com.mopub.mobileads.factories.CustomEventBannerAdapterFactory.internalCreate(com.mopub.mobileads.MoPubView, java.lang.String, java.util.Map, long, com.mopub.common.AdReport) (CustomEventBannerAdapterFactory.java:32) 
12-08 15:26:32.891 I/art  (3378): at com.mopub.mobileads.CustomEventBannerAdapter com.mopub.mobileads.factories.CustomEventBannerAdapterFactory.create(com.mopub.mobileads.MoPubView, java.lang.String, java.util.Map, long, com.mopub.common.AdReport) (CustomEventBannerAdapterFactory.java:24) 
12-08 15:26:32.892 I/art  (3378): at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) 
12-08 15:26:32.892 I/art  (3378): at java.lang.Object com.mopub.common.util.Reflection$MethodBuilder.execute() (Reflection.java:71) 
12-08 15:26:32.892 I/art  (3378): at void com.mopub.mobileads.MoPubView.loadCustomEvent(java.lang.String, java.util.Map) (MoPubView.java:188) 
12-08 15:26:32.892 I/art  (3378): at void com.mopub.mobileads.AdViewController.loadCustomEvent(com.mopub.mobileads.MoPubView, java.lang.String, java.util.Map) (AdViewController.java:177) 
12-08 15:26:32.892 I/art  (3378): at void com.mopub.mobileads.AdViewController.onAdLoadSuccess(com.mopub.network.AdResponse) (AdViewController.java:136) 
12-08 15:26:32.892 I/art  (3378): at void com.mopub.mobileads.AdViewController$1.onSuccess(com.mopub.network.AdResponse) (AdViewController.java:107) 
12-08 15:26:32.892 I/art  (3378): at void com.mopub.network.AdRequest.deliverResponse(com.mopub.network.AdResponse) (AdRequest.java:310) 
12-08 15:26:32.892 I/art  (3378): at void com.mopub.network.AdRequest.deliverResponse(java.lang.Object) (AdRequest.java:46) 
12-08 15:26:32.892 I/art  (3378): at void com.mopub.volley.ExecutorDelivery$ResponseDeliveryRunnable.run() (ExecutorDelivery.java:99) 
12-08 15:26:32.892 I/art  (3378): at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:751) 
12-08 15:26:32.892 I/art  (3378): at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95) 
12-08 15:26:32.892 I/art  (3378): at void android.os.Looper.loop() (Looper.java:154) 
12-08 15:26:32.892 I/art  (3378): at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6077) 
12-08 15:26:32.892 I/art  (3378): at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) 
12-08 15:26:32.892 I/art  (3378): at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:865) 
12-08 15:26:32.892 I/art  (3378): at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:755) 
+0

1. aar - это просто усиленная банда с ресурсами android. Что бы вы ни делали с банкой, которую вы можете сделать с ааром. 2. Может быть, вы делитесь своей конфигурацией proguard? Мы не можем догадаться, что вы там определили. Также попробовал это с minify = false? 3. Может быть, вы поделитесь своим xml-файлом? Мы не можем догадаться, что тоже – WarrenFaith

+0

Спасибо Уоррену. Я нашел одну из проблем. Перед компиляцией вы должны включить компоненты Google play в библиотеку привязки Xamarin. Это исправило эту проблему, но теперь я столкнулся с другими проблемами, которые могут быть связаны с proguard. Для этого нужно будет сделать еще одну запись. – Ray

ответ

1

Перед компиляцией вы должны включить компоненты игры Google в библиотеку привязки Xamarin. Это исправило эту проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^