Unity App在我的设备上崩溃

时间:2017-10-29 10:59:25

标签: android unity3d admob

当玩家死亡时,我创建了一个Unity游戏,其中包括AdMob服务(插件)。在编辑器中测试应用程序时,一切正常。但是当我将apk复制到Android手机上,然后到达游戏中玩家死亡的地方时,它会崩溃。

使用Logcat我发现了引发的异常:

10-29 11:46:36.806 29956 29956 E AndroidRuntime: Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/ads/MobileAds;
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at com.google.unity.ads.RewardBasedVideo$1.run(RewardBasedVideo.java:65)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at android.os.Handler.handleCallback(Handler.java:746)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:95)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:148)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:5443)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
10-29 11:46:36.806 29956 29956 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.MobileAds" on path: DexPathList[[zip file "/data/app/com.comp.game-1/base.apk"],nativeLibraryDirectories=[/data/app/com.comp.game-1/lib/arm, /data/app/com.comp.game-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        ... 8 more
10-29 11:46:36.806 29956 29956 E AndroidRuntime:        Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.ads.MobileAds
10-29 11:46:36.806 29956 29956 E AndroidRuntime:                at java.lang.Class.classForName(Native Method)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
10-29 11:46:36.806 29956 29956 E AndroidRuntime:                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)10-29 11:46:36.806 29956 29956 E AndroidRuntime:                ... 9 more

我尝试过使用资产>播放服务解析器> Android解析器>解析客户端jar。

但选项" Resolve Client Jars"并不存在。所以我尝试从here安装插件,但这并没有让它出现。

我猜测它与丢失的罐子有关,但如果不使用Jar解析器,我不知道哪些以及如何添加它们。

哦,一个细节可能值得一提:我必须安装一个旧版本的工具(tools_r25.2.5),以便进行编译。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您很可能正在使用其他一些具有相互冲突版本的Google Play服务的依赖项。

确保所有依赖项都依赖于相同的版本,

并验证您实施的其他插件不要使用较新版本或较旧版本的google play服务,或者firebase,或任何其他类型的依赖项,这两种版本在两个版本中不止一次。

祝你好运

答案 1 :(得分:2)

如果项目工作空间有空格,则播放服务解析程序doest可以正常工作。从项目工作区中删除空格,然后强制解析jar。 其他问题可能是项目中缺少dependencies.xml文件。