Android -启用minifyEnabled和shrinkResources后,Firebase分析未显示在 Jmeter 板上

xqkwcwgp  于 2023-06-04  发布在  Android
关注(0)|答案(2)|浏览(174)

我在代码中启用了minifyEnabled & shrinkResources。启用后,我没有得到任何分析的应用程序版本上的分析 Jmeter 板.
我是否需要对firebase analytics进行任何proguard更改?

build.gradle

buildTypes {
        debug {
            
        }
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            firebaseCrashlytics {
                mappingFileUploadEnabled true
            }
        }
    }
wwwo4jvm

wwwo4jvm1#

首先,尝试将此添加到您的proguard

-keep class com.google.analytics.** { *; }

您是否使用任何自定义类作为发送值的源?如果是的话,那么你也应该把这个类添加到proguard中

anhgbhbe

anhgbhbe2#

当在Android项目中将minifyEnabled设置为true并将shrinkResources设置为true时,它将在构建过程中启用代码和资源优化。但是,这种优化有时会导致某些库或框架出现问题,例如Firebase。
要解决minifyEnabled和shrinkResources设置为true时Firebase无法工作的问题,您可以尝试将必要的规则添加到ProGuard配置文件(proguard-rules.pro)中,以保留所需的Firebase类和资源。
将以下规则添加到proguard-rules.pro文件:

# Keep the Firebase classes
-keep class com.google.firebase.** { *; }

# Keep the Play Services classes
-keep class com.google.android.gms.** { *; }

# Keep the Firebase options
-keepattributes Signature
-keepattributes *Annotation*
-keepclassmembers public class com.google.firebase.options.FirebaseOptions {
    public <fields>;
    public <methods>;
}

# Keep the Firebase database data classes
-keepclassmembers class * extends com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper {
    <fields>;
}

# Keep the Firebase Firestore classes
-keepnames class com.google.firebase.firestore.** { *; }

# Keep the Firebase Auth classes
   -keepnames class com.google.firebase.auth.** { *; }

确保proguard-rules.pro在build.gradle文件中包含www.example.com文件:

android {
    // ...

    buildTypes {
        release {
            // ...
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

通过添加这些规则,您可以指示ProGuard在代码和资源优化过程中保留必要的Firebase类和资源,确保Firebase即使在启用minifyEnabled和shrinkResources时也能正常运行。
注意:如果您使用的是其他Firebase产品,如Firebase Crashlytics或Firebase Analytics,您可能还需要添加特定于这些产品的其他ProGuard规则。有关所需的ProGuard规则,请参阅Firebase文档或相应的Firebase产品文档。

相关问题