首页 > 解决方案 > 使用 Places 库时如何在 proguard 中编写规则

问题描述

我正在使用 Android Studio Java lang,我的应用程序运行良好,但如果它上传到 playstore proguard 上会混淆代码,那么每次我打开 GPS 位置并更新我的应用程序时。

错误日志猫

12-07 05:43:20.211 25483-25483/? E/ViewRootImpl: sendUserActionEvent() mView == null
12-07 05:43:20.231 25483-25483/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: dealmagnet.com, PID: 25483
    c.b.b.q.d: No properties to serialize found on class f.a.d.o
        at c.b.b.q.w.a1.o.a$a.<init>(CustomClassMapper.java:74)
        at c.b.b.q.w.a1.o.a.e(CustomClassMapper.java:2)
        at c.b.b.q.w.a1.o.a.f(CustomClassMapper.java:33)
        at c.b.b.q.g.m(DatabaseReference.java:6)
        at f.a.b.f.onComplete(lambda:18)
        at com.google.android.gms.tasks.zzj.run(com.google.android.gms:play-services-tasks@@17.1.0:6)

这是我的依赖

implementation 'com.google.android.gms:play-services-places:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.1.0'
implementation 'com.google.android.libraries.places:places:2.4.0'  

保护规则

-keep class androidx.annotation.Keep
-dontwarn androidx.support.**
-keep class androidx.annotation.Keep
-keepnames class com.google.android.gms** {*;}
-keep public class com.google.j2objc** { public *; }
-dontwarn com.google.j2objc.**
-keep @androidx.annotation.Keep class * {*;}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <methods>;
}
-keepclasseswithmembers class * {
    @androidx.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
    @androidx.annotation.Keep <init>(...);
}
-keepclasseswithmembernames class * {
    native <methods>;
}
-dontwarn org.apache.http.annotation.**
-keep class com.sinch** { *; }
-keep interface com.sinch** { *; }
-keep class org.webrtc** { *; }
-keepattributes SourceFile,LineNumberTable,*Annotation*,EnclosingMethod,Signature,Exceptions,InnerClasses
-keep class dealmagnet.com.registration.BecomeDealerActivity { *; }
-keep class dealmagnet.com.registration.RegisterSelfEmployed { *; }
-keep class dealmagnet.com.account.Dealer { *; }
# Basic ProGuard rules for Firebase Android SDK 2.0.0+
-keep class com.firebase** { *; }
-keep class org.apache** { *; }
-keepnames class com.fasterxml.jackson** { *; }
-keepnames class javax.servlet** { *; }
-keepnames class org.ietf.jgss** { *; }
-dontwarn org.apache.**
-dontwarn org.w3c.dom.**

标签: javaandroid

解决方案


尝试添加此规则

-keep class com.google.android.gms.tasks** {*;}

推荐阅读