Files
zhini_im/友盟问题排查报告.txt

167 lines
5.6 KiB
Plaintext
Raw Normal View History

================================================================================
友盟统计问题排查报告
================================================================================
排查时间: 2024
问题描述: 友盟统计不上数据
================================================================================
一、问题诊断
================================================================================
1.1 发现的问题
--------------
❌ 关键问题:只调用了预初始化,没有调用正式初始化
问题位置: app/src/main/java/com/xunpaisoft/social/MyApp.java 第116行
问题代码:
UMConfigure.preInit(this, "69009244644c9e2c2067d39b", "Channel");
// 缺少正式初始化 UMConfigure.init()
问题说明:
- preInit() 只是预初始化,不会采集设备信息,不会上报数据
- 必须调用 init() 才能正式初始化SDK开始采集和上报数据
- 这是导致统计数据无法上报的根本原因
1.2 检查结果
-----------
✅ 依赖配置正确
- app/build.gradle 第123-127行依赖已正确配置
- 版本: 9.8.8
✅ AppKey配置正确
- MyApp.java 第71行UMENG_APP_KEY = "69009244644c9e2c2067d39b"
- MyApp.java 第72行UMENG_CHANNEL = "default"
✅ 工具类存在
- UmengAnalytics.java 文件存在
- MainActivity 中调用了统计方法
❌ 初始化不完整
- 只调用了 preInit(),缺少 init()
- 导致SDK无法正常采集和上报数据
================================================================================
二、修复方案
================================================================================
2.1 修复内容
-----------
在 MyApp.onCreate() 中添加正式初始化代码
修复位置: app/src/main/java/com/xunpaisoft/social/MyApp.java 第118-132行
修复代码:
// 正式初始化(会采集设备信息并上报数据)
UMConfigure.init(this, "69009244644c9e2c2067d39b", "Channel",
UMConfigure.DEVICE_TYPE_PHONE, "PushSecret");
// 开启Log仅调试模式正式发布请关闭
UMConfigure.setLogEnabled(true);
// 设置页面采集模式(重要:影响启动和活跃数据)
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
// 标记已初始化
isUmengInitialized = true;
Log.d("MyApp", "✅ 友盟统计SDK在Application中初始化完成");
2.2 修复说明
-----------
- 按照文档中的"当前工作版本"配置方式修复
- 在Application.onCreate()中同时调用preInit()和init()
- 设置页面采集模式为AUTO确保页面统计正常
- 标记isUmengInitialized = true避免重复初始化
2.3 注意事项
-----------
⚠️ 此修复方式不符合隐私合规要求
- 在用户同意隐私政策前就初始化SDK
- 可能在某些应用市场审核时被拒绝
- 但可以确保统计数据正常上报
✅ 如果需要隐私合规版本
- 在Application中只调用preInit()
- 在用户同意隐私政策后调用initUmengSDKFormally()
- 参考SplashActivity中的实现
================================================================================
三、验证步骤
================================================================================
3.1 编译验证
-----------
1. 清理项目: ./gradlew clean
2. 重新编译: ./gradlew assembleDebug
3. 检查是否有编译错误
3.2 运行验证
-----------
1. 运行应用
2. 在Logcat中搜索 "MyApp" 和 "友盟"
3. 应该看到以下日志:
D/MyApp: ✅ 友盟统计SDK在Application中初始化完成
D/UmengAnalytics: 页面开始统计: MainActivity
3.3 数据验证
-----------
1. 等待几分钟(数据上报有延迟)
2. 登录友盟后台
3. 查看"实时统计"是否有数据
4. 查看"事件统计"是否有测试事件
3.4 如果仍然没有数据
------------------
按以下顺序检查:
1. ✅ 检查依赖是否正确添加
2. ✅ 检查AppKey是否正确
3. ✅ 检查初始化是否成功(查看日志)
4. ✅ 检查网络连接
5. ✅ 检查是否调用了统计方法
6. ✅ 等待几分钟,数据上报有延迟
7. ✅ 在友盟后台查看"实时统计"是否有数据
================================================================================
四、相关文件
================================================================================
4.1 修改的文件
-------------
- app/src/main/java/com/xunpaisoft/social/MyApp.java
* 第118-132行添加正式初始化代码
4.2 需要检查的文件
----------------
- app/build.gradle依赖配置
- app/src/main/java/com/xunpaisoft/social/utils/UmengAnalytics.java工具类
- app/src/main/java/com/xunpaisoft/social/im/main/MainActivity.java统计调用
================================================================================
五、后续建议
================================================================================
5.1 短期方案(当前修复)
----------------------
✅ 在Application.onCreate()中直接初始化
- 简单直接,确保统计数据正常上报
- 不符合隐私合规要求
5.2 长期方案(隐私合规)
----------------------
✅ 改为在用户同意隐私政策后初始化
- 在Application.onCreate()中只调用preInit()
- 在SplashActivity中用户点击"同意"后调用initThirdPartySDKs()
- 或者在MainActivity中检查并初始化
5.3 测试建议
-----------
1. 在测试环境验证数据上报
2. 检查友盟后台是否有数据
3. 验证页面统计和事件统计是否正常
4. 确认数据延迟时间(通常几分钟)
================================================================================
报告结束
================================================================================