xamarin - Android Google Analytics 无法实例化接收器 com.google.analytics.tracking.android.CampaignTrackingReceiver

标签 xamarin xamarin.android analytics

我正在使用 Google Analytics ( 29.0.0.2 ) 开发 Xamarin,我的最低 Android 版本是 4.2Target Android 版本 5.0 目标框架是 5.0

当我处于调试状态以及在 Dropbox 和 Airdroid 上分发我的发布应用程序时,一切正常,但是,当我将我的应用程序放在 Google Play Console Beta 上时,第一次安装时,Google Analytics 崩溃并出现以下错误:

java.lang.RuntimeException: Unable to instantiate receiver com.google.analytics.tracking.android.CampaignTrackingReceiver: java.lang.ClassNotFoundException: Didn't find class "com.google.analytics.tracking.android.CampaignTrackingReceiver" on path: DexPathList[[zip file "/data/app/it.riciclario.app-1/base.apk"],nativeLibraryDirectories=[/data/app/it.riciclario.app-1/lib/arm, /vendor/lib, /system/lib]]
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:2587)
    at android.app.ActivityThread.access$1700(ActivityThread.java:147)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1358)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5264)
    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:900)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:695)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.analytics.tracking.android.CampaignTrackingReceiver" on path: DexPathList[[zip file "/data/app/it.riciclario.app-1/base.apk"],nativeLibraryDirectories=[/data/app/it.riciclario.app-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:2582)
    ... 9 more
    Suppressed: java.lang.ClassNotFoundException: com.google.analytics.tracking.android.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

我不明白问题出在哪里,也不知道附加的到底是什么。当应用程序第一次崩溃时,第二次一切正常。我仅在 GOOGLE PLAY STORE 上遇到此问题,不在调试中,在 dropbox 版本或 Airdroid 安装中也没有出现此问题。我的 Android Monitor Tool 上没有崩溃,也没有错误。

有什么想法吗?非常感谢。

最佳答案

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.analytics.tracking.android.CampaignTrackingReceiver"

从 Play 商店安装应用时,将调用 CampaignTrackingReceiver 意图(使用 com.android.vending.INSTALL_REFERRER)。

注意:CampaignTrackingReceiver 有三个不同的“类”位置,具体取决于您使用的版本 (v2/v3/v4)。 (就我个人而言,由于早期版本中存在各种问题,我现在使用 v4+)

  • 您的 list 正确吗?如果您可以在没有安装引用跟踪的情况下生存,请从应用的 list 中删除接收器。

  • 您是否启用了 Proguard 并且未将 com.google.analytics.* 列入白名单,从而剥离这些类

  • 您是否安装了其他 Google Play 服务?游戏、位置等,因为其中一些与分析之间存在命名冲突。 V2 和 V3 都存在与此和不同软件包相关的问题。最终在V4中得到修正。了解 V2 和 V3 的修复方法是手动编辑 Google .jar(Google 搜索是您的 friend ...)

关于xamarin - Android Google Analytics 无法实例化接收器 com.google.analytics.tracking.android.CampaignTrackingReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42110189/

相关文章:

android - 使用Google Analytics和odfuscation时生成错误

ios - Facebook Analytics 显示记录的事件过多

javascript - 获取解析分析自定义仪表板

c# - Proguard 错误 (Xamarin c#)

c# - Xamarin CollectionView 缓慢滚动

iOS StackView 或 CollectionView

ios - 为 Xamarin.iOS 将 .mlmodel 编译为 .mlmodelc?

xamarin - 如何通过默认系统 pdf 应用程序中的 FileProvider 打开 Xamarin.Android 中内部创建的 pdf?

启用链接器的 MvvmCross 从 4.2.3 更新到 4.4.0 后,Android EditText 绑定(bind)被破坏

xamarin - AppLink Xamarin 表单未建立索引