【问题标题】:proguard + crashlytics crashproguard + crashlytics 崩溃
【发布时间】:2016-06-06 20:51:59
【问题描述】:

我在我的项目中集成了 Crashlytics,现在当我启用 proguard 时,应用程序崩溃。已尝试从 crashlytics 中排除所有类,但没有成功

文件 proguard-rules.pro 文件有以下内容

-keep class io.fabric.sdk.android.** { *; }
-keep interface io.fabric.sdk.android.** { *; }
-keep class com.digits.sdk.android.core.** { *; }
-keep interface com.digits.sdk.android.core.** { *; }
-keep class com.twitter.sdk.android.** { *; }
-keep interface com.twitter.sdk.android.** { *; }

-keep class io.fabric.** { *; }
-keep interface io.fabric.** { *; }
-keep class com.digits.** { *; }
-keep interface com.digits.** { *; }
-keep class com.twitter.** { *; }
-keep interface com.twitter.** { *; }
-keep class com.crashlytics.** { *; }
-keep interface com.crashlytics.** { *; }
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

我收到一个错误

com.example.app E/Answers: Failed to submit events task
    java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@1d060ef0 rejected from java.util.concurrent.ScheduledThreadPoolExecutor@31c1ac69[Shutting down, pool size = 1, active threads = 0, queued tasks = 1, completed tasks = 9]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2011)
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:793)
        at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:298)
        at java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:503)
        at java.util.concurrent.ScheduledThreadPoolExecutor.submit(ScheduledThreadPoolExecutor.java:602)
        at java.util.concurrent.Executors$DelegatedExecutorService.submit(Executors.java:593)
        at com.crashlytics.android.answers.AnswersEventsHandler.executeAsync(Unknown Source)
        at com.crashlytics.android.answers.AnswersEventsHandler.processEvent(Unknown Source)

我还查看了 crashlytics 文档并尝试了所有可能的组合。 有人可以指导我吗

【问题讨论】:

  • 来自 Fabric 的 Mike - 只是好奇,你为什么认为这与 Proguard 相关?当 Proguard 设置生效时,错误似乎是在提交事件时,而不是在构建或编译时。发生此错误时,您尝试提交什么类型的事件?另外,你能分享一下你的 Fabric 初始化代码吗?
  • 是的,这个问题不是来自 Fabric,在我排除了与 Fabric 无关的其他类后,这个问题得到了解决。

标签: android proguard crashlytics android-proguard twitter-fabric


【解决方案1】:

来自他们的documentation -

首先Fabric内部使用注解,所以添加如下 配置文件的行:

-keepattributes *Annotation*

接下来,为了提供最有意义的崩溃报告,添加 配置文件中的以下行:

-keepattributes SourceFile,LineNumberTable

如果您使用自定义异常,请添加此行以便自定义 混淆期间会跳过异常类型:

-keep public class * extends java.lang.Exception

【讨论】:

  • 谢谢,但是我们已经尝试了所有这些方法,但对我们不起作用:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 2017-02-12
  • 2018-11-30
相关资源
最近更新 更多