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

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

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

build.gradle

  1. buildTypes {
  2. debug {
  3. }
  4. release {
  5. minifyEnabled true
  6. shrinkResources true
  7. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  8. firebaseCrashlytics {
  9. mappingFileUploadEnabled true
  10. }
  11. }
  12. }
wwwo4jvm

wwwo4jvm1#

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

  1. -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文件:

  1. # Keep the Firebase classes
  2. -keep class com.google.firebase.** { *; }
  3. # Keep the Play Services classes
  4. -keep class com.google.android.gms.** { *; }
  5. # Keep the Firebase options
  6. -keepattributes Signature
  7. -keepattributes *Annotation*
  8. -keepclassmembers public class com.google.firebase.options.FirebaseOptions {
  9. public <fields>;
  10. public <methods>;
  11. }
  12. # Keep the Firebase database data classes
  13. -keepclassmembers class * extends com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper {
  14. <fields>;
  15. }
  16. # Keep the Firebase Firestore classes
  17. -keepnames class com.google.firebase.firestore.** { *; }
  18. # Keep the Firebase Auth classes
  19. -keepnames class com.google.firebase.auth.** { *; }

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

  1. android {
  2. // ...
  3. buildTypes {
  4. release {
  5. // ...
  6. minifyEnabled true
  7. shrinkResources true
  8. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  9. }
  10. }
  11. }

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

展开查看全部

相关问题