proguard + crashlytics 崩溃
proguard + crashlytics crash
我在我的项目中集成了 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 文档并尝试了所有可能的组合。
有人可以指导我吗
来自他们的 documentation -
First of all, Fabric uses annotations internally, so add the following
line to your configuration file:
-keepattributes *Annotation*
Next, in order to provide the most meaningful crash reports, add the
following line to your configuration file:
-keepattributes SourceFile,LineNumberTable
If you are using custom exceptions, add this line so that custom
exception types are skipped during obfuscation:
-keep public class * extends java.lang.Exception
我在我的项目中集成了 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 文档并尝试了所有可能的组合。 有人可以指导我吗
来自他们的 documentation -
First of all, Fabric uses annotations internally, so add the following line to your configuration file:
-keepattributes *Annotation*
Next, in order to provide the most meaningful crash reports, add the following line to your configuration file:
-keepattributes SourceFile,LineNumberTable
If you are using custom exceptions, add this line so that custom exception types are skipped during obfuscation:
-keep public class * extends java.lang.Exception