Android SDK 常见问题
Last updated
Last updated
确认当前页面方法有三种:
1.,查看圈选页面为当前页面
2.,进入页面发送的page
的p
为当前的页面
3.使用查看page
事件的p
设置以下点击事件的控件会被采集点击事件,如果您自定义了点击事件,不在下方列举之内,将无法采集点击事件,影响数据分析。
如果您自定义了 Click 事件, 但是希望 SDK 采集。 可以放置一个 onClickListener
作为代理。这种方案即使随着我们的 SDK 升级也会被兼容。
请注意设置您的 View 可点击:
例: TabHost
的点击事件采集增加 onClickListener 后可以采集到点击事件
最后,如果您是在布局文件中在view
上使用 onClick
属性的点击事件,不会被采集,不支持。
有以下多种方式,任选其一。
唤起圈选,点击小红点,能够看到版本号;
使用 Mobile Debugger , 点击左侧截图区域的 i
图标,能够看到版本号;
翻阅代码,app 目录层中的 build.gradle 文件中查找;
查看日志,每条 vst 事件中 av
字段描述版本号;
抓包查看,网络请求中包含。
我们强烈不建议您自行定义设备ID有以下几个方面:
我们采集的设备 ID 为了能够唯一标识一台设备信息,如果您进行自定义,有可能用户卸载重新安装应用,设备 ID 会不一致,造成老用户被识别成新用户;
如果您未曾定义过设备ID,并且已经集成SDK并且发版过,则新旧设备 ID 不兼容,老用户被认为成新用户,导致新用户数量暴增;
在 Android 无埋点 SDK 集成步骤中,其中有一步需要在 manifest.xml 文件中配置 intent-filter
代码块,如果有多个 URLScheme
配置,请参照以下代码:
此问题常发生在 Activity
中包含多个 Fragment
的页面中。
如果此 Fragment
不是您业务上认为的页面,可以使用 ignoreFragment
不认为此 Fragment 可以作为页面访问事件发送。
注意:setPageVariable
接口参数中的 Activity 或者 Fragment 必须为当前页面访问事件页面,即可成功发送自定义页面事件。
SDK 2.7.5 正式支持 instant Run, 不需要配置 gioenable 变量,请升级 SDK。
GrowingIO Android SDK 的编译时耗时取决于您的项目大小,我们的原理是字节码插桩(使用Transform API)。 从clean项目, 执行assembleDebug, 如果添加了GrowingIO的SDK, 会大约增加50%的时间, 如果执行assembleRelease, 添加GrowingIO SDK 大约会增加30%的时间。 可以看出GrowingIO确实会影响您的编译时长,尤其是在项目比较大的情况。 如果您感觉到明显的编译耗时长,我们提供了一个在开发期间 GrowingIO 不参与编译的配置,如下:
1.在 Project 项目中,gradle.properties 文件内添加
2.在 Module 级别的 build.gradle 文件中增加配置
上线时,一定要将 gradle.properties 文件中的 gioenable 改为 true 。否则我们将无法采集数据。
SDK 2.7.4 以下版本不支持 Instant Run , 请开发者开发期间配置 gioenable = false
,即可使用 Instant Run。
如下图:
是否在集成 SDK 时配置 GrowingIO <intent-filter/>
代码块中的 Activity 中使用了 getIntent
呢?
解答: 请在您的逻辑中过滤掉 Gio 的 Intent ,我们的 Intent 大致格式是这样:
growing.xxxxxxxxxxx://growing/oauth2/token?loginToken=xxxxx.........
请您在代码逻辑中判断如果是以 growing
开头的 scheme
不处理它,代码示例:
Android 无埋点 SDK 支持 com.android.tools.build:gradle
2.3.3 及其以上版本,推荐版本是 3.2.1。下文将简称 com.android.tools.build:gradle
为 gradle。
无埋点 SDK 随着 gradle 的升级也在逐步兼容,请参考以下表格更新 SDK:
无埋点 SDK 版本
说明
2.8.4+
SDK 2.8.4 版本及其以上支持 gradle 3.5.0;
新增在编译期间校验用户使用的 SDK 是否为稳定 SDK 版本,如果使用有问题的版本将主动在编译时提示用户升级 SDK,并抛出异常提示,拒绝编译。
2.7.8
升级无埋点 SDK 2.8.4 如果报错如下:
Unable to load class 'org.apache.http.impl.client.CloseableHttpClient'. Possible causes for this unexpected error include: Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) Re-download dependencies and sync project (requires network)
The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem. Stop Gradle build processes (requires restart)
Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.
In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.
此报错原因是在 SDK 2.8.4 时新增在编译期间校验用户使用的 SDK 是否为稳定 SDK 版本,如果使用有问题的版本将主动在编译时提示用户升级 SDK,并抛出异常提示,拒绝编译功能,此部分代码逻辑触发了Proguard 的 Bug ,导致报错。建议解决方案有两种:
升级 gradle 为 3.2.1 及其以上版本;
在项目级别 build.gradle 中添加以下依赖即可:
示例代码: