sna*_*ark 5 android google-analytics
在这个问题上,我一直在墙上撞了好几个小时.Google Analytics 的v4文档指定了两种不同的方式来让您的应用报告未捕获的异常.我无法工作.在这两种情况下,当我在我的应用程序中触发未捕获的异常时(在我自己的代码中使用虚拟名称),我在LogCat中看到这样的行:
08-17 17:33:30.248: V/GAV4(8968): Thread[main,5,main]: Tracking Exception: MyException (@MyClass:myMethod:143) {main}
08-17 17:33:30.248: V/GAV4(8968): Thread[main,5,main]: Dispatch call queued. Dispatch will run once initialization is complete.
08-17 17:33:30.248: V/GAV4(8968): Thread[main,5,main]: Passing exception to original handler.
Run Code Online (Sandbox Code Playgroud)
...然后是我的异常的堆栈跟踪,最后是:
08-17 17:33:44.282: I/Process(8968): Sending signal. PID: 8968 SIG: 9
Run Code Online (Sandbox Code Playgroud)
从LogCat看起来GA似乎从未实际向Google的服务器发送异常!
如果有人设法在他们的Google Analytics控制台中报告未被捕获的异常情况,那么如果他们可以与我们分享他们是如何做到这一点那就太棒了.我已经在SO上看过其他人这样的查询(例如,这里和这里),但没有确认报告未捕获的异常.
我已经在GA控制台中显示了屏幕视图,所以我必须做正确的事情.但不是未被捕获的例外.我假设一个人应该在行为>崩溃和异常下寻找它们,并且我已经将结束日期设置为今天(默认情况下似乎设置为昨天).最后,在我的analytics_global_config.xml中,我有:
<integer name="ga_dispatchPeriod">1</integer>
Run Code Online (Sandbox Code Playgroud)
因为否则默认值是1800秒,在这种情况下,我假设在GA控制台出现后至少30分钟内不会看到异常.ga_dryRun也是假的.
正如@xitx所指出的那样,在人们的设备上安装的Google Play服务库的后续版本中似乎存在一个错误.因为当我在模拟器上为相对较旧的设备(API 9,并且可能运行旧的Google Play Services库)运行现有代码时,崩溃确实会自动报告给GA的控制台.这是崩溃发生时LogCat所说的:
08-31 12:27:59.522: V/GAV4(335): Thread[GAThread,5,main]: Sending hit to store PATH: https: PARAMS: ul=en-us, ht=1409484468454, sr=480x800, a=746864705, sf=100.0, aid=com.redula.vsavings, cid=32da19a1-7e15-4c83-aaa9-f3f1d502b775, av=1.2, v=1, t=exception, an=Savings Organiser, tid=UA-XXXXXXXX, exd=NullPointerException (@HomeActivity:connectToInAppBillingService:202) {main}, _u=.2nKKhAAAL, exf=1,
08-31 12:27:59.622: V/GAV4(335): Thread[GAThread,5,main]: PowerSaveMode initiated.
08-31 12:27:59.652: V/GAV4(335): Thread[GAThread,5,main]: PowerSaveMode terminated.
08-31 12:27:59.652: V/GAV4(335): Thread[GAThread,5,main]: Dispatch running...
08-31 12:27:59.702: V/GAV4(335): Thread[GAThread,5,main]: User-Agent: GoogleAnalytics/3.0 (Linux; U; Android 2.3.1; en-us; sdk Build/GSI11)
08-31 12:27:59.702: V/GAV4(335): Host: ssl.google-analytics.com
08-31 12:27:59.702: V/GAV4(335): GET /collect?ul=en-us&ht=1409484468454&sr=480x800&a=746864705&sf=100.0&aid=com.redula.vsavings&cid=32da19a1-7e15-4c83-aaa9-f3f1d502b775&av=1.2&v=1&t=exception&an=Savings+Organiser&tid=UA-XXXXXXX&exd=NullPointerException+%28%40HomeActivity%3AconnectToInAppBillingService%3A202%29+%7Bmain%7D&_u=.2nKKhAAAL&_v=ma4.0.2&exf=1&qt=11249&z=2 HTTP/1.1
08-31 12:28:00.482: V/GAV4(335): Thread[GAThread,5,main]: sent 1 of 1 hits
08-31 12:28:00.492: V/GAV4(335): Thread[GAThread,5,main]: PowerSaveMode initiated.
08-31 12:32:48.562: I/Process(335): Sending signal. PID: 335 SIG: 9
Run Code Online (Sandbox Code Playgroud)
这就是GA控制台在一分钟左右的崩溃中显示的内容:

我知道你只能获得堆栈跟踪的第一行,但现在这对我有用.其他各种各样的人都有自己的方法来获取整个堆栈跟踪(参见上面的@ xitx的评论,例如这里).
因此,我计划使用现有代码并等待Google在更高版本的Google Play服务中将修复程序发送到他们的错误.一旦他们的修复程序发布,我的应用程序应该按原样运行.
为了记录,我在我的跟踪器的XML文件(res/xml/app_tracker_config.xml)中使用它:
<bool name="ga_reportUncaughtExceptions">true</bool>
Run Code Online (Sandbox Code Playgroud)
我的getTracker()实现:
public class MyApp extends Application {
private static Tracker tracker = null;
synchronized Tracker getTracker() {
if (tracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
analytics.enableAutoActivityReports(this);
tracker = analytics.newTracker(R.xml.app_tracker_config);
tracker.enableAdvertisingIdCollection(true);
}
return tracker;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在onCreate()中为我的主屏幕活动我这样做来初始化GA:
((MyApp) getApplication()).getTracker();
Run Code Online (Sandbox Code Playgroud)
编辑(额外信息):全局配置文件,res/xml/analytics_global_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ga_logLevel">verbose</string>
<integer name="ga_dispatchPeriod">1</integer>
<bool name="ga_dryRun">false</bool>
</resources>
Run Code Online (Sandbox Code Playgroud)
我的应用程序清单引用该application元素的子标记中的此文件:
<meta-data
android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/analytics_global_config" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8467 次 |
| 最近记录: |