Игра вылетает на Android после использования AdMob с Google Play Games Services - PullRequest
0 голосов
/ 09 июля 2019

Я использую Unity, игровые сервисы Google Play (последняя версия 0.9.64) хорошо работают в моей игре, когда используются без AdMob, но когда я добавил AdMob (последняя версия 3.18.0), когда я загружаю свою игру из магазина Google Play инажмите кнопку «Открыть», там отобразится эта ошибка «имя приложения остановлено», но игра по-прежнему работает в фоновом режиме, я могу играть в нее нормально и открыть ее из виджета телефона без этой ошибки, но эта ошибка появляется снова, если я нажимаю кнопку вмоя игра для входа в сервисы Google Play, реклама работает хорошо

  • я пробовал игровые сервисы Google старая версия 0.9.53 с AdMobe новая версия 3.18.0 все работает хорошо, я могу войти в gpgs и рекламуработает, но ошибка "имя приложения остановилось" по-прежнему появляется, когда только игра открывается из магазина Google Play

Я могу использовать самые старые версии gpgs, если это единственный способ заставить это работать, но какое решениеза ошибку "имя приложения остановилось" я все еще получаю, когда игра открывается из магазина?

Logcat, когда gpgs и рекламаПоследние версии мобов используются, и я открыл игру прямо из магазина игр Google после загрузки, и появляется сообщение об ошибке «имя приложения остановлено»:

    07-09 20:32:20.903: E/Unity(2689): AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.ads.MobileAds
    07-09 20:32:20.903: E/Unity(2689): java.lang.ClassNotFoundException: com.google.android.gms.ads.MobileAds
    07-09 20:32:20.903: E/Unity(2689):  at java.lang.Class.classForName(Native Method)
    07-09 20:32:20.903: E/Unity(2689):  at java.lang.Class.forName(Class.java:308)
    07-09 20:32:20.903: E/Unity(2689):  at java.lang.Class.forName(Class.java:272)
    07-09 20:32:20.903: E/Unity(2689):  at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
    07-09 20:32:20.903: E/Unity(2689):  at com.unity3d.player.UnityPlayer.c(Unknown Source)
    07-09 20:32:20.903: E/Unity(2689):  at com.unity3d.player.UnityPlayer$e$2.queueIdle(Unknown Source)
    07-09 20:32:20.903: E/Unity(2689):  at android.os.MessageQueue.next(MessageQueue.java:211)
    07-09 20:32:20.903: E/Unity(2689):  at android.os.Looper.loop(Looper.java:122)
    07-09 20:32:20.903: E/Unity(2689):  at com.unity3d.player.UnityPlayer$e.run(Unknown Source)
    07-09 20:32:20.903: E/Unity(2689): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.MobileAds" on path: DexPathList[[zip file "/data/app/com.Kadev.HungryyBears-1/base.apk"],nativeLibraryDirectories=[/data/app/com.Kadev.HungryyBears-1/lib/arm, /vendor/lib, /system/lib]]
    07-09 20:32:20.903: E/Unity(2689):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    07-09 20:32:20.903: E/Unity(2689):  at java.lang.ClassLoader.loadCla

Logcat, когда используются последние версии gpgs и admob, и янажмите кнопку входа в gpgs, после чего появится та же ошибка:

07-09 20:10:12.633: W/Unity(31914): OnLevelWasLoaded was found on Reporter
07-09 20:10:12.633: W/Unity(31914): This message has been deprecated and will be removed in a later version of Unity.
07-09 20:10:12.633: W/Unity(31914): Add a delegate to SceneManager.sceneLoaded instead to get notifications after scene loading has completed
07-09 20:10:12.633: W/Unity(31914):  
07-09 20:10:12.633: W/Unity(31914): (Filename:  Line: 356)
07-09 20:10:18.273: I/Unity(31914): Ads Request Created
07-09 20:10:18.273: I/Unity(31914):  
07-09 20:10:18.273: I/Unity(31914): (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
07-09 20:10:25.003: I/Unity(31914): HandleAdLoaded event received
07-09 20:10:25.003: I/Unity(31914):  
07-09 20:10:25.003: I/Unity(31914): (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
07-09 20:10:32.073: I/Unity(31914): Starting Auth with token client.
07-09 20:10:32.073: I/Unity(31914):  
07-09 20:10:32.073: I/Unity(31914): (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
07-09 20:10:32.103: W/Unity(31914): !!! [Play Games Plugin DLL] 07/09/19 19:10:32 +00:00 WARNING: Creating new PlayGamesPlatform
07-09 20:10:32.103: W/Unity(31914):  
07-09 20:10:32.103: W/Unity(31914): (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

решение для GPGS 0.9.64 и AdMob 0.18.0 заключается в параметре проверки настроек проигрывателя, в результате чего будет создан пустой файл proguard в папке plugins / android, откройте его в Visual Studio и пропустите этот код (предложено SlobodanNikolic в Github) веб-сайт https://github.com/googleads/googleads-mobile-unity/issues/598):

-dontwarn com.google.vr.ndk.base.DaydreamApi
-keep class com.facebook.** {
   *;
}
-keep class com.google.unity.** {
   *;
}
-keep public class com.google.android.gms.ads.**{
   public *;
}
-keep public class com.google.ads.**{
   public *;
}
-keepattributes *Annotation*
-dontobfuscate

с этим решением у вас все равно будет первый раз, когда игра откроется из сообщения о сбое Google Play. но через несколько дней они выпустили новую версию AdMob 0.18.1, которая без проблем работает с GPGS 0.9.64.

0 голосов
/ 11 июля 2019

- Вы можете решить эту проблему, следуя приведенным ниже инструкциям. Перейдите к

Активы -> Средство разрешения служб воспроизведения -> Android -> Force Resolve

-Если вышеприведенная инструкция не работает, вы должны следовать приведенной ниже инструкции,

Настройки плеера -> Настройки публикации -> установите опцию выпуска и отладки в минимизации на «Нет».

Аналогичная проблема: https://answers.unity.com/questions/1464677/admob-plugin-error-javalangclassnotfoundexception.html

...