将未捕获的异常发送到 google 分析
Send uncaught exception to google analytic
我试图将未捕获的异常发送给 google 分析两周,但我找不到一个完整的例子来解释我如何做到这一点,我找到了很多例子,但它们并不完整,也没有为我工作,甚至 google-developer 也不清楚,也没有从头到尾解释。
有人知道任何解释如何逐步执行此操作的资源吗?
假设您已经为您的项目设置了 Google Analytics 并且您正在使用 Google Analytics V4,您需要做的就是将以下内容添加到您的 Google Analytics XML配置文件:
<bool name="ga_reportUncaughtExceptions">true</bool>
来源:Crashes & Exceptions Google Analytics Android SDK 的文档。
集成 Google Analytics 并只为 Android 发送未经处理的异常的最简单方法是:
将最新的 Google Play 服务与您的应用集成。 Link to instructions here。不要忘记将播放服务版本元元素添加到您的 AndroidManifest.xml,它是 Analytics 正确运行所必需的:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
创建应用 class,在 Google Analytics github 上扩展 android.app.Application and override onCreate method. See the minimal Google Analytics Hello World app 作为示例。
在您的应用 onCreate 覆盖初始化 Google 分析,创建您的默认应用跟踪器并启用异常报告。您不需要 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.Register 通过将 AndroidManifest.xml 中应用程序元素的名称属性设置为您的应用程序,将您的应用程序作为应用程序实现 class:
<application android:name=".YourAppClass" ... />
在您的 AndroidManifest.xml:
中注册推荐的 AnalyticsReceiver 和 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>
我试图将未捕获的异常发送给 google 分析两周,但我找不到一个完整的例子来解释我如何做到这一点,我找到了很多例子,但它们并不完整,也没有为我工作,甚至 google-developer 也不清楚,也没有从头到尾解释。 有人知道任何解释如何逐步执行此操作的资源吗?
假设您已经为您的项目设置了 Google Analytics 并且您正在使用 Google Analytics V4,您需要做的就是将以下内容添加到您的 Google Analytics XML配置文件:
<bool name="ga_reportUncaughtExceptions">true</bool>
来源:Crashes & Exceptions Google Analytics Android SDK 的文档。
集成 Google Analytics 并只为 Android 发送未经处理的异常的最简单方法是:
将最新的 Google Play 服务与您的应用集成。 Link to instructions here。不要忘记将播放服务版本元元素添加到您的 AndroidManifest.xml,它是 Analytics 正确运行所必需的:
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
创建应用 class,在 Google Analytics github 上扩展 android.app.Application and override onCreate method. See the minimal Google Analytics Hello World app 作为示例。
在您的应用 onCreate 覆盖初始化 Google 分析,创建您的默认应用跟踪器并启用异常报告。您不需要 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.Register 通过将 AndroidManifest.xml 中应用程序元素的名称属性设置为您的应用程序,将您的应用程序作为应用程序实现 class:
<application android:name=".YourAppClass" ... />
在您的 AndroidManifest.xml:
中注册推荐的 AnalyticsReceiver 和 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>