我试图将未捕获的异常发送到谷歌分析两周,我找不到一个完整的例子来解释我如何做到这一点,我找到了很多例子,但他们不完整,对我来说不起作用,甚至谷歌-developer不清楚,并没有从A到Z解释它。 有人知道任何解释如何一步一步完成的资源吗?
答案 0 :(得分:1)
假设您已经为项目设置了Google Analytics并且使用的是Google Analytics V4,那么您只需将以下内容添加到Google Analytics XML配置文件中:
<bool name="ga_reportUncaughtExceptions">true</bool>
来源:Google Analytics Android SDK的Crashes & Exceptions文档。
答案 1 :(得分:0)
集成Google Analytics并仅为Android发送无法处理的例外的最简单方法是:
将最新的Google Play服务与您的应用集成。 Link to instructions here。不要忘记将播放服务版本元元素添加到您的AndroidManifest.xml中,它是Google Analytics正确功能所必需的:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
创建扩展android.app.Application并覆盖onCreate方法的应用类。请参阅Google Analytics github上的minimal Google Analytics Hello World app作为示例。
在onCreate覆盖的应用中,初始化Google Analytics,创建默认的应用跟踪器并启用异常报告。您不需要xml配置。从代码中做到这一点比较简单:
private static GoogleAnalytics analytics;
private static Tracker tracker;
@Override
public void onCreate() {
super.onCreate();
analytics = GoogleAnalytics.getInstance(this);
tracker = analytics.newTracker("UA-00000-1"); // Replace with your tracker id
tracker.enableExceptionReporting(true);
}
向清单添加必需(和可选)权限。分析需要网络来发送您的点击量。可选的唤醒锁定权限有助于可靠的调度:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- optional wake lock permission -->
<uses-permission android:name="android.permission.WAKE_LOCK"/>
5.通过将AndroidManifest.xml中application元素的name属性设置为app类,将您的应用程序注册为Application实现:
<application android:name=".YourAppClass" ... />
注册推荐的AnalyticsReceiver&amp; AndroidManifest.xml中的AnalyticsService:
<application>
...
<!-- Enable background dispatching to improve delivery on non-Google Play devices -->
<receiver
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH"/>
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false"/>
...
</application>