标签: stack-trace

Crashlytics的stacktraces在启用Dexguard时将文件名显示为Unknown Source

当我在项目中启用Dexguard时,我遇到了来自Fabric Crashlytics的崩溃报告的问题.

我在项目中启用了Dexguard,效果非常好.然后我按照本页中的说明添加了所提到的配置,以使Fabric对我的堆栈跟踪进行去混淆并显示正确的崩溃报告.以下是我在主模块中应用fabric和dexguard插件的方法build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'dexguard'
apply plugin: 'io.fabric'
Run Code Online (Sandbox Code Playgroud)

以下是我proguard-project.txt文件中的配置:

# Fabric
#############################################################################
-keepattributes *Annotation*,SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
-keepresourcexmlelements manifest/application/meta-data@name=io.fabric.ApiKey
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
#############################################################################
Run Code Online (Sandbox Code Playgroud)

以下是我proguard-project.txt在发布版本中的使用方法:

buildTypes{
    debug{
        proguardFile getDefaultDexGuardFile('dexguard-debug-shrink.pro')
        proguardFile 'proguard-project.txt'
    }
    release{
        proguardFile getDefaultDexGuardFile('dexguard-release.pro')
        proguardFile 'proguard-project.txt'
        proguardFile 'dexguard-project.txt'
        if(new File("$projectDir/../local.properties").exists()){
            signingConfig signingConfigs.release
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当在发布版本中遇到崩溃时,发生崩溃的文件名将丢失,但其他所有内容都正常工作,并且堆栈跟踪几乎是可以理解的.这是一个崩溃报告示例:

未知的源文件名

正如您在崩溃报告中看到的那样,堆栈跟踪中只缺少文件名.行号和方法名称等其他描述完全正常.

虽然使用完整的方法名称ir.X.ui.XMainActivity.throwSomething和前面的行号Unknown Source,但我可以得出错误发生的文件名,我希望我的堆栈跟踪显示文件名并完全描述自己.我尝试了很多选项和许多试验和错误,但问题仍然存在.

有什么我想念的吗?我怎么解决这个问题?

我正在使用8.1.0.7Dexguard版本1.21.7,Fabric插件版本2.9.0 …

android stack-trace dexguard crashlytics-android google-fabric

20
推荐指数
1
解决办法
2056
查看次数

如何在保持到目前为止生成的堆栈跟踪的同时重新抛出内部异常?

重复:在C#中,如何在不丢失堆栈跟踪的情况下重新抛出InnerException?

我有一些操作,我在后台线程上异步调用.有时,事情变坏了.当发生这种情况时,我倾向于得到一个TargetInvocationException,这在适当的时候是没用的.我真正需要的是TargetInvocationException的InnerException,如下所示:

    try
    {
        ReturnValue = myFunctionCall.Invoke(Target, Parameters);
    }
    catch (TargetInvocationException err)
    {
        throw err.InnerException;
    }
Run Code Online (Sandbox Code Playgroud)

这样,我的调用者就会发生真正的异常.问题是,throw语句似乎重置了堆栈跟踪.我想基本上重新抛出内部异常,但保留它最初的堆栈跟踪.我怎么做?

澄清: 我只想要内部异常的原因是这个类试图"抽象"这些函数(由调用者提供的委托)在其他线程上运行的事实.如果存在异常,则可能与在后台线程上运行无关,并且调用者真的希望堆栈跟踪进入其委托并找到真正的问题,而不是我调用的调用.

.net c# exception-handling exception stack-trace

19
推荐指数
3
解决办法
4854
查看次数

如何使用MONO进行线程转储?

如何在与MONO一起运行的挂起应用程序中显示线程(stacktraces)?

我知道我可以使用Managed Stack Explorer(MSE)在.NET中完成它.因为应用程序仅与MONO挂起,我需要使用MONO.

或者还有其他想法如何找到悬挂的地方?

.net mono stack-trace thread-dump

19
推荐指数
1
解决办法
3573
查看次数

如何将完整的堆栈跟踪写入日志?

我正在捕获异常并尝试将堆栈跟踪写入日志,如下所示:

log.warn(e.getMessage());
Run Code Online (Sandbox Code Playgroud)

但它说的都是

null
Run Code Online (Sandbox Code Playgroud)

所以我改成了

log.warn(e.toString());
Run Code Online (Sandbox Code Playgroud)

现在只说了

java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

如何将完整堆栈跟踪写入日志,以便我可以看到应用程序中生成此异常的位置?

java stack-trace

19
推荐指数
4
解决办法
4万
查看次数

ICS上的本机堆栈跟踪?

由于某种原因,我不能在我这里的ICS设备上发生本地(C/C++)地址/堆栈跟踪.

在我的Nexus 7上,当本机库崩溃时,不会输出任何内容.log.redirect-stdio设置为通过时设置为1,/system/default.prop并且/data/local.prop都不起作用.

我试着设置log.redirect-stdiotrue使用stop,setprop,start的命令,但仍然没有原生的堆栈跟踪是输出到logcat的.

谷歌我的意思是来吧......我每天都因为与我的错误,不可预测的关系而对Google产生越来越多的信心.

android stack-trace android-ndk nexus-s android-4.0-ice-cream-sandwich

19
推荐指数
1
解决办法
1398
查看次数

使用嵌入式lua从C代码打印stacktrace

如果我理解正确,默认情况下Lua会在发生错误时调用调试库"debug.traceback".

但是,当将Lua嵌入到C代码中时,就像这里的示例中所做的那样: 简单的Lua API示例

我们只在堆栈顶部提供错误消息.

if (status) {
    /* If something went wrong, error message is at the top of */
    /* the stack */
    fprintf(stderr, "Couldn't load file: %s\n", lua_tostring(L, -1));

    /* I want to print a stacktrace here. How do I do that? */
    exit(1);
}
Run Code Online (Sandbox Code Playgroud)

初始错误后如何从C打印堆栈跟踪?

lua stack-trace traceback lua-api

19
推荐指数
3
解决办法
1万
查看次数

如何获得堆栈跟踪字符串而不在python中引发异常?

traceback.format_exc()

可以通过提出异常来获得它.

traceback.print_stack()

打印堆栈时不需要例外,但它不返回字符串.

似乎没有办法获得堆栈跟踪字符串而不在python中引发异常?

python stack-trace

19
推荐指数
1
解决办法
9326
查看次数

尝试在空对象引用上调用接口方法'boolean java.util.List.add(java.lang.Object)'

MainActivity.java有以下代码:

package com.softjourn.redmineclient.activities;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Base64;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.google.gson.JsonArray;
import com.google.gson.JsonParser;
import com.softjourn.redmineclient.R;
import com.softjourn.redmineclient.models.Issue;
import com.softjourn.redmineclient.models.IssuesResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.ProtocolException;
import java.net.URL;
import butterknife.Bind;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity {

private final static String URI="https://redmineng.softjourn.if.ua/issues.json?assigned_to_id=me";
@Bind(R.id.list_issues) ListView mListIssues;
Login li;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);

    li = new Login();
    li.execute(URI);
}

@Override
public boolean …
Run Code Online (Sandbox Code Playgroud)

java android list stack-trace android-studio

19
推荐指数
1
解决办法
5万
查看次数

$$和<generated>在java stacktrace中意味着什么?

很多次我得到像这样的堆栈跟踪(请参阅箭头的混乱线):

org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [PRIMARY]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
                at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:164)
                at org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:741)
                at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:589)
                at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
                at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
                at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485)
                at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291)
                at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
                at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
                at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:653)
--------->      at com.panpwr.admin.services.detector.SimpleDetectorPersistenceService$$EnhancerBySpringCGLIB$$66303639.saveComplexRuleAndActionTemplates(<generated>)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
...
Run Code Online (Sandbox Code Playgroud)

$$符号是什么,"生成"是什么意思? com.panpwr.admin.services.detector.SimpleDetectorPersistenceService$$EnhancerBySpringCGLIB$$66303639.saveComplexRuleAndActionTemplates(<generated>)

为什么它只说执行的方法而不是它中的行?

java spring stack-trace cglib

19
推荐指数
1
解决办法
7122
查看次数

跟踪:requestLayout()调用不正确?

任何人都可以告诉我如何修复以下跟踪:

W/View    (16810): requestLayout() improperly called by 
theme.effects.TopCenterImageView{41dc73f0 V.ED.... ........ 
0,0-480,690 #7f060066 app:id/normal_image} during second 
layout pass: posting in next frame
Run Code Online (Sandbox Code Playgroud)

这是TopCenterImageView的代码:

public class TopCenterImageView extends ImageView {

public TopCenterImageView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    setScaleType(ScaleType.MATRIX);
}

public TopCenterImageView(Context context, AttributeSet attrs) {
    super(context, attrs);
    setScaleType(ScaleType.MATRIX);
}

public TopCenterImageView(Context context) {
    super(context);
    setScaleType(ScaleType.MATRIX);
}

@Override
protected boolean setFrame(int l, int t, int r, int b) {
    if (getDrawable() == null) {
        return super.setFrame(l, t, r, b); …
Run Code Online (Sandbox Code Playgroud)

android stack-trace

18
推荐指数
1
解决办法
2万
查看次数