首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在预保护压缩和应用程序部署后获得适当的堆栈跟踪

在预保护压缩和应用程序部署后获得适当的堆栈跟踪
EN

Stack Overflow用户
提问于 2016-05-30 12:47:21
回答 1查看 248关注 0票数 0

我已经部署了我的第一个应用程序,我正在捕捉例外使用谷歌分析。我在记录堆叠痕迹。

代码语言:javascript
复制
[in.jiyofit.basic_app.WorkoutActivity.a(Unknown Source), 
in.jiyofit.basic_app.WorkoutActivity.onWindowFocusChanged(Unknown Source),

如何解读“未知源头”中的内容?我相信这是因为护卫的缘故。有没有办法在崩溃/异常期间得到线路号码?下面是查找异常的代码:

代码语言:javascript
复制
public void trackException(Exception e) {
    if (e != null) {
        Tracker t = getGoogleAnalyticsTracker();

        t.send(new HitBuilders.ExceptionBuilder()
                .setDescription(
                        new StandardExceptionParser(this, null)
                                .getDescription(Thread.currentThread().getName(), e))
                .setFatal(false)
                .build()
        );

        SharedPreferences loginPrefs = getSharedPreferences("LoginInfo", MODE_PRIVATE);
        userID = loginPrefs.getString("userID", "");
        DisplayMetrics metrics = new DisplayMetrics();
        Long currentTime = System.currentTimeMillis();
        if(userID.length() > 0){
            trackEvent("Exception", "userID: " + userID + " Date: " + currentTime + " " + e.getClass().getSimpleName(), Arrays.toString(e.getStackTrace()));
            trackEvent("Exception", "userID: " + userID + " Date: " + currentTime + " " + e.getClass().getSimpleName(), "SDK: " + Build.VERSION.SDK_INT + " Manu: " + Build.MANUFACTURER + " Model: " + Build.MODEL);
        } else {
            trackEvent("Exception", "Date: " + currentTime + " " + e.getClass().getSimpleName(), Arrays.toString(e.getStackTrace()));
            trackEvent("Exception", "Date: " + currentTime + " " + e.getClass().getSimpleName(), "SDK: " + Build.VERSION.SDK_INT + " Manu: " + Build.MANUFACTURER + " Model: " + Build.MODEL);
        }
    }
} 

编辑:我试图跟随戈帕尔的回答如下。我以这种方式获得堆栈跟踪:Arrays.toString(e.getStackTrace()),我记录了以下堆栈跟踪:

代码语言:javascript
复制
[in.jiyofit.basic_app.WorkoutActivity.a(Unknown Source), 
in.jiyofit.basic_app.WorkoutActivity.onWindowFocusChanged(Unknown Source), 
 com.android.internal.policy.impl.PhoneWindow$DecorView.onWindowFocusChanged(PhoneWindow.java:2777), 
android.view.View.dispatchWindowFocusChanged(View.java:7995), 
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:968),
 android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3171), 
android.os.Handler.dispatchMessage(Handler.java:102), 
android.os.Looper.loop(Looper.java:136), 
android.app.ActivityThread.main(ActivityThread.java:5433), 
java.lang.reflect.Method.invokeNative(Native Method), 
java.lang.reflect.Method.invoke(Method.java:515), 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268), 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084), 
dalvik.system.NativeStart.main(Native Method)]  

但是,这没有被正确地处理以获得去模糊的代码。去模糊代码将模糊代码作为输出。那么,1.应该如何存储堆栈跟踪,以便对其进行解释?Arrays.toString(e.getStackTrace())似乎不能正常工作2。我应该如何编辑给定的堆栈跟踪,以便对其进行解释和处理?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-05-30 12:51:32

转到sdk目录\\Androidsdk\tools\proguard\bin并打开proguardgui.bat,有一个选项可以进行回溯,使用这个选项,您可以将您的映射文件放入由proguard和混淆的堆栈跟踪生成的映射文件中,并获得具有适当行号的原始堆栈跟踪。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37526073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档