【问题标题】:Game crashes on Android after using AdMob with Google Play Games Services将 AdMob 与 Google Play 游戏服务一起使用后,游戏在 Android 上崩溃
【发布时间】:2019-07-09 17:55:32
【问题描述】:

我使用 unity ,google play 游戏服务(最新版本 0.9.64)在没有 AdMob 的情况下在我的游戏中运行良好,但是当我从 google play store 下载我的游戏时添加 AdMob(最新版本 3.18.0)并且单击此处的打开按钮它显示此错误“应用程序名称已停止”但游戏仍在后台运行我可以正常播放它我可以从手机小部件打开它而没有该错误但是如果我单击一个按钮会再次出现此错误我的游戏登录到 google play services ,广告效果很好

  • 我用 AdMobe 新版本尝试了 google game services 旧版本 0.9.53 3.18.0 一切正常我可以登录 gpgs 和广告工作,但 仅从谷歌打开游戏时仍然出现错误“应用名称已停止” 游戏商店

我可能会使用最旧版本的 gpgs,如果它是使这项工作正常工作的唯一方法,但是当游戏从商店打开时我仍然得到错误“应用程序名称已停止”的解决方案是什么?

使用gpgs和admob最新版本时的Logcat,我下载后直接从google play store打开游戏,出现“应用名称已停止”错误:

    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

当使用 gpgs 和 admob 最新版本时使用 Logcat,我单击登录 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)

【问题讨论】:

    标签: unity3d admob google-play-services


    【解决方案1】:

    GPGS 0.9.64 和 AdMob 0.18.0 的解决方案是在播放器设置中检查 proguard 选项,这将在 plugins/android 文件夹中创建一个空的 proguard 文件,在 Visual Studio 中打开它并通过该代码(由 Github 中的 SlobodanNikolic 建议网站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 配合良好,没有此问题。

    【讨论】:

      【解决方案2】:

      -您可以按照以下说明解决此问题。转到

      Assets -> Play services resolver -> Android -> Force Resolve

      -如果上面的说明不起作用,那么你必须按照下面的说明,

      播放器设置 -> 发布设置 -> 将缩小选项中的发布和调试设置为“无”。

      类似的问题: https://answers.unity.com/questions/1464677/admob-plugin-error-javalangclassnotfoundexception.html

      【讨论】:

      • 感谢您的回答,但我尝试了 Force Resolve 但没有帮助,并且缩小选项为无
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      相关资源
      最近更新 更多