web-dev-qa-db-fra.com

Problème de construction d'AndroidX avec ProGuard

[~ # ~] fermé [~ # ~]

Nous essayons d'intégrer Android (qui compile Android)) dans notre projet migré vers androidX. Et pour des raisons inconnues, nous obtenons

can't find referenced method 'void addOnTabSelectedListener(com.google.Android.material.tabs.TabLayout$OnTabSelectedListener)' in program class com.google.Android.material.tabs.TabLayout

en essayant d'obtenir un build proguard activé.

gradle-wrapper: 4.8

gradle build tools : 3.2.0

compileSdkVersion 28

EDIT du 9 octobre 2018

Pour une raison quelconque, il s’agissait d’un problème lié à Proguard, qui affichait une erreur erronée. Après avoir apporté quelques modifications à notre code source et oublié d’ajouter des classes à proguard, les erreurs avec les classes que nous avions oublié d’ajouter ont été modifiées. et après les avoir ajoutés, tout s'est bien passé.

Je pense que vous devriez dire à proguard de ne pas obscurcir les classes de matériaux. Mais il ne s'agit que d'une solution de contournement, vous avez un autre problème, alors essayez de le résoudre.

Essayez d’ajouter ces lignes dans votre fichier proguardrules.pro:

-keep class com.google.Android.material.** { *; }

-dontwarn com.google.Android.material.**
-dontnote com.google.Android.material.**

-dontwarn androidx.**
-keep class androidx.** { *; }
-keep interface androidx.** { *; }

Ensuite, dans votre build.gradle

buildscript {
    repositories {
        maven {
            url "http://storage.googleapis.com/r8-releases/raw/master"
        }
    }

    dependencies {
        classpath 'com.Android.tools:r8:ff9c89416cc1c8adf83d481a1e5fd515fcb893b9'
        classpath 'com.Android.tools.build:gradle:your version'
    }
}
8
Roberto Manfreda
-dontwarn com.google.Android.material.**
-keep class com.google.Android.material.** { *; }

-dontwarn androidx.**
-keep class androidx.** { *; }
-keep interface androidx.** { *; }
3
Vijay Patel