首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的Android应用程序只有在无法调试时才会崩溃?

我的Android应用程序只有在无法调试时才会崩溃?
EN

Stack Overflow用户
提问于 2019-01-04 11:01:58
回答 3查看 1.4K关注 0票数 4

我有一个Android应用程序,在调试模式下运行良好,但在发布模式下开始出现问题。它在将物品绑定到回收视图时崩溃。

最初,我认为这将是一个前保护问题,但是在启用了调试模式的proguard之后,很明显只有发布版本才有这个问题。为了尝试一下,我将发行版设置为debuggable true,问题就解决了。

是否有人知道只有当apk不可调试器时才会导致崩溃?或者用任何方法来调试这个程序,看看到底出了什么问题?

这些是我的构建类型:

代码语言:javascript
复制
buildTypes {
    debug {
        multiDexEnabled true
        shrinkResources true
        minifyEnabled true
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    release {
        multiDexEnabled true
        shrinkResources true
        minifyEnabled true
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

因此,如果我将debuggable true添加到release中,则发行版可以工作。如果我将debuggable false添加到debug中,调试版本将停止工作.

逻辑猫:

代码语言:javascript
复制
E/AndroidRuntime: FATAL EXCEPTION: main
Process: __, PID: _
a.a
    at ___.overview.dashboard.m.a(Unknown Source)
    at ___.overview.dashboard.c.a(Unknown Source)
    at android.support.v7.widget.RecyclerView$a.a(Unknown Source)
    at android.support.v7.widget.RecyclerView$a.b(Unknown Source)
    at android.support.v7.widget.RecyclerView$p.a(Unknown Source)
    at android.support.v7.widget.RecyclerView$p.a(Unknown Source)
    at android.support.v7.widget.RecyclerView$p.a(Unknown Source)
    at android.support.v7.widget.RecyclerView$p.c(Unknown Source)
    at android.support.v7.widget.LinearLayoutManager$c.a(Unknown Source)
    at android.support.v7.widget.LinearLayoutManager.a(Unknown Source)
    at android.support.v7.widget.LinearLayoutManager.a(Unknown Source)
    at android.support.v7.widget.LinearLayoutManager.c(Unknown Source)
    at android.support.v7.widget.RecyclerView.N(Unknown Source)
    at android.support.v7.widget.RecyclerView.q(Unknown Source)
    at android.support.v7.widget.RecyclerView.onLayout(Unknown Source)
    at android.view.View.layout(View.java:18798)
    at android.view.ViewGroup.layout(ViewGroup.java:5951)
    at android.support.constraint.ConstraintLayout.onLayout(Unknown Source)
    at android.view.View.layout(View.java:18798)
    at android.view.ViewGroup.layout(ViewGroup.java:5951)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:18798)
    at android.view.ViewGroup.layout(ViewGroup.java:5951)
    at android.support.constraint.ConstraintLayout.onLayout(Unknown Source)
    at android.view.View.layout(View.java:18798)
    at android.view.ViewGroup.layout(ViewGroup.java:5951)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:18798)
    at android.view.ViewGroup.layout(ViewGroup.java:5951)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
    at android.view.View.layout(View.java:18798)
    at android.view.ViewGroup.layout(ViewGroup.java:5951)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:18798)
    at android.view.ViewGroup.layout(ViewGroup.java:5951)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
    at android.view.View.layout(View.java:18798)
    at android.view.ViewGroup.layout(ViewGroup.java:5951)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at com.android.internal.policy.DecorView.onLayout(DecorView.java:887)
    at android.view.View.layout(View.java:18798)
    at android.view.ViewGroup.layout(ViewGroup.java:5951)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2648)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2364)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1515)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7091)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:927)
    at android.view.Choreographer.doCallbacks(Choreographer.java:702)
    at android.view.Choreographer.doFrame(Choreographer.java:638)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:913)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6682)
    at java.lang.reflect.Method.invoke(Native Method)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-04 12:24:41

就像@laalto说的,有一个堆栈可以帮助

把这个放在我的护卫档案里:

代码语言:javascript
复制
-keepattributes SourceFile,LineNumberTable

帮我找到了错误所在。这向您展示了堆栈跟踪中的原始类名和行数。我仍然不知道为什么调试模式不会出现错误,但至少我能够解决它。再次感谢!

票数 4
EN

Stack Overflow用户

发布于 2019-06-26 14:29:04

对我来说,问题是我正在测试发布版本,并禁用了Crashlytics,以避免跟踪我的活动。当“可调试器”设置为true时工作正常,但一旦设置为false,我就会在应用程序启动时立即崩溃。基本上,我忘了打开Crashlytics,并从中得到了一些内部错误。

票数 3
EN

Stack Overflow用户

发布于 2021-08-31 09:06:56

如果您使用的是C重载函数,不要!

I.A类

代码语言:javascript
复制
ofAndroidInit(){ 
  // will only work with debugging = false
}

B类main.cpp

代码语言:javascript
复制
ofAndroidInit() {
 // will work with debugging = true
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54037699

复制
相关文章

相似问题

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