Не все исключения Kotlin показаны в крашлитиках - PullRequest
0 голосов
/ 17 декабря 2018

Я присоединился к текущему проекту, этот проект использует Proguard.У меня уже были некоторые проблемы из-за Proguard, и я решил ее, так как номера строк и имена классов не отображались корректно в crashlytics

Моя проблема в том, что я вижу правильную строку и имя класса, но исключение составляет просто Kotlin.b

Fatal Exception 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

1 Ответ

0 голосов
/ 23 декабря 2018

Я обнаружил, что при использовании Proguard вы должны добавить `-keep 'для ваших пользовательских исключений. Я подумал, если это проблема, и она не обрабатывается, поэтому я добавил

-keep public class * extends java.lang.Exception

и теперь Kotlinисключения показаны в Crashlytics

...