android - 并非所有 Kotlin 异常都显示在 crashlytics 中
问题描述
我加入了一个正在进行的项目,这个项目使用 Proguard。由于 Proguard,我已经遇到了一些问题,我解决了它,因为行号和类名在 crashlytics 中没有正确显示
我现在的问题是,我看到了正确的行和类名,但例外只是Kotlin.b
缺少什么来显示正确的异常,Proguard 是否与此有关
这是我的 Proguard 文件,如果我的 Proguard 文件有问题,我愿意接受一般建议,因为这是我第一次使用它
-optimizationpasses 1
-dontpreverify
-verbose
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public class android.content.Context
-keep class com.gauravbhola.ripplepulsebackground.RipplePulseLayout$RippleView { *; }
#-keep,includedescriptorclasses public class androidx.** { *; }
#-keep,includedescriptorclasses public class android.support.** { *; }
#-keep,includedescriptorclasses public class com.google.** { *; }
-keep,includedescriptorclasses public class io.fabric.sdk.** { *; }
# Keep AppMeasurement
-keepclasseswithmembers class * {
public static com.google.android.gms.measurement.AppMeasurement getInstance (android.content.Context);
}
-dontwarn com.google.**
-dontwarn android.support.**
-dontwarn androidx.**
-dontwarn io.fabric.sdk.**
-optimizations !class/unboxing/enum
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** w(...);
public static *** i(...);
}
# this will fix a force close in ReadingActivity
-keep public class org.jsoup.** {
public *;
}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#skip running ProGuard on Crashlytics
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
# The I2P Java API bundled inside the I2P Android client library contains
# references to javax.naming classes that Android doesn't have. But those
# classes are never used on Android, and it is safe to ignore the warnings.
-dontwarn net.i2p.crypto.CertUtil
-dontwarn org.apache.http.conn.ssl.DefaultHostnameVerifier
-dontwarn org.apache.http.HttpHost
# Needed for okhttp
-dontwarn okio.**
-dontwarn javax.annotation.Nullable
-dontwarn javax.annotation.ParametersAreNonnullByDefault
# there were 11 unresolved references to classes or interfaces
-dontwarn okhttp3.**
# -dontwarn javax.annotation.**
-dontwarn org.conscrypt.**
# A resource is loaded with a relative path so the package of this class must be preserved.
# -keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
# Preserve annotations, line numbers, and source file names
-keepattributes *Annotation*,SourceFile,LineNumberTable
-keepattributes InnerClasses,EnclosingMethod
解决方案
我发现使用 Proguard,你必须为你的自定义异常添加 `-keep' 我想知道这是否是问题并且没有处理,所以我添加了
-keep public class * extends java.lang.Exception
现在 Kotlin 异常显示在 Crashlytics 中
推荐阅读
- c# - 我可以通过cs文件创建Datagrid而不用xaml编写代码吗
- google-apps-script - 在 Google 表格中按颜色排序的宏代码?
- c++ - SPOJ WATER 问题的 SIGABRT 错误背后的原因可能是什么?
- r - 从 R 认证到 Linkedin API
- c++ - 在资源管理器替换程序的文件夹 (SHOpenFolderAndSelectItems) 中显示
- python - Python 装饰器早期解析破坏了前向声明
- powershell - 如何调用在 for 循环中创建的变量?
- sql-server - SQL Server 中具有空值多列的平均值
- firebase - 在 Flutter 中返回 Null 的可调用云函数
- amazon-web-services - 如何确定使用 AWS Terraform 资源所需的 AWS IAM 策略权限?