无法实例化接收器首先运行

时间:2016-07-26 06:36:56

标签: android unity3d google-analytics

我们在Unity上开发了一款游戏,我们在游戏中使用谷歌分析,游戏构建和运行顺利,没有任何错误

我们将apk上传到Play商店进行beta测试,第一次运行应用程序时崩溃,第二次运行完美,这种情况仅适用于全新安装,更新游戏的用户不会遇到此错误

我们在具有不同Android版本的5种不同设备上具有相同的行为

我在logcat中捕获了错误,我对这个错误很熟悉,通常你会错过一个库或者什么东西,但是应用程序在构建时运行得很好,只有新安装不起作用!

我甚至从Play商店下载了应用程序,将apk拉到我的电脑上,再次使用adb安装了应用程序,它并没有崩溃!

以下是错误的日志:

java.lang.Error: FATAL EXCEPTION [main]
                                               Unity version     : 5.2.5f1
                                               Device model      : samsung GT-I9500
                                               Device fingerprint: samsung/ja3gxx/ja3g:5.0.1/LRX22C/I9500XXUHOH6:user/release-keys

                                               Caused by: java.lang.RuntimeException: Unable to instantiate receiver com.google.android.gms.analytics.CampaignTrackingReceiver: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.analytics.CampaignTrackingReceiver" on path: DexPathList[[zip file "/data/app/com.remalit.kammelna-1/base.apk"],nativeLibraryDirectories=[/data/app/com.remalit.kammelna-1/lib/arm, /vendor/lib, /system/lib]]
                                                   at android.app.ActivityThread.handleReceiver(ActivityThread.java:2974)
                                                   at android.app.ActivityThread.access$1800(ActivityThread.java:177)
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1525)
                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                   at android.os.Looper.loop(Looper.java:145)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5942)
                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                   at java.lang.reflect.Method.invoke(Method.java:372)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
                                                Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.analytics.CampaignTrackingReceiver" on path: DexPathList[[zip file "/data/app/com.remalit.kammelna-1/base.apk"],nativeLibraryDirectories=[/data/app/com.remalit.kammelna-1/lib/arm, /vendor/lib, /system/lib]]
                                                   at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                   at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                   at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                   at android.app.ActivityThread.handleReceiver(ActivityThread.java:2969)
                                                   at android.app.ActivityThread.access$1800(ActivityThread.java:177) 
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1525) 
                                                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                   at android.os.Looper.loop(Looper.java:145) 
                                                   at android.app.ActivityThread.main(ActivityThread.java:5942) 
                                                   at java.lang.reflect.Method.invoke(Native Method) 
                                                   at java.lang.reflect.Method.invoke(Method.java:372) 
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400) 
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195) 
                                                Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.analytics.CampaignTrackingReceiver
                                                   at java.lang.Class.classForName(Native Method)
                                                   at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                                                   at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                                                   at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                        ... 11 more
                                                Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

07-26 09:28:55.991 3166-29939 /? E / android.os.Debug:ro.product_ship = true

1 个答案:

答案 0 :(得分:1)

我通过将我的android项目从Eclipse迁移到Android Studio遇到了类似的问题。我的根本原因是,即使Google Analytics库包含在项目中,项目也缺少Google服务库。

我按照Android studio的Google Analytics设置修复了问题:https://developers.google.com/analytics/devguides/collection/android/v4/

主要是这些步骤:

  

Gradle的Google服务插件解析配置信息   来自google-services.json文件。将插件添加到项目中   更新您的顶级build.gradle和您的应用级build.gradle   文件如下:

     

将依赖项添加到项目级build.gradle:

nnoremap <c-z> :u<CR>      " Avoid using this**
inoremap <c-z> <c-o>:u<CR>
     

将插件添加到应用级build.gradle的底部:

classpath 'com.google.gms:google-services:3.0.0'
     

现在,您需要为Google Play服务添加依赖项。内   你的应用的build.gradle添加:

apply plugin: 'com.google.gms.google-services'