我有一个Android应用程序,在调试模式下运行良好,但在发布模式下开始出现问题。它在将物品绑定到回收视图时崩溃。
最初,我认为这将是一个前保护问题,但是在启用了调试模式的proguard之后,很明显只有发布版本才有这个问题。为了尝试一下,我将发行版设置为debuggable true,问题就解决了。
是否有人知道只有当apk不可调试器时才会导致崩溃?或者用任何方法来调试这个程序,看看到底出了什么问题?
这些是我的构建类型:
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中,调试版本将停止工作.
逻辑猫:
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)发布于 2019-01-04 12:24:41
就像@laalto说的,有一个堆栈可以帮助
把这个放在我的护卫档案里:
-keepattributes SourceFile,LineNumberTable帮我找到了错误所在。这向您展示了堆栈跟踪中的原始类名和行数。我仍然不知道为什么调试模式不会出现错误,但至少我能够解决它。再次感谢!
发布于 2019-06-26 14:29:04
对我来说,问题是我正在测试发布版本,并禁用了Crashlytics,以避免跟踪我的活动。当“可调试器”设置为true时工作正常,但一旦设置为false,我就会在应用程序启动时立即崩溃。基本上,我忘了打开Crashlytics,并从中得到了一些内部错误。

发布于 2021-08-31 09:06:56
如果您使用的是C重载函数,不要!
I.A类
ofAndroidInit(){
// will only work with debugging = false
}B类main.cpp
ofAndroidInit() {
// will work with debugging = true
}https://stackoverflow.com/questions/54037699
复制相似问题