Проблема с выпуском AndroidX с помощью ProGuard - программирование
Подтвердить что ты не робот

Проблема с выпуском AndroidX с помощью ProGuard

ЗАКРЫТО

Мы пытаемся интегрировать библиотеку андроида (которая компилирует библиотеку поддержки android) в нашем проекте, который был перенесен в androidX. И по неизвестной причине мы получаем

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

пытаясь получить встроенную защиту proguard.

gradle-wrapper: 4.8

gradle build tools: 3.2.0

compileSdkVersion 28

EDIT 9-Oct-2018

По какой-то причине это была проблема с proguard, proguard показывала неправильную ошибку, после того как мы внесли некоторые изменения в наш исходный код и забыли добавить некоторые классы в proguard, это изменило ошибки с классами, которые мы забыли добавить. и после добавления их все прошло хорошо.

4b9b3361

Ответ 1

Я думаю, что вы должны сказать proguard, чтобы не запутывать материал классов. Но это всего лишь обходной путь, у вас есть другая проблема, поэтому попробуйте ее исправить.

Попробуйте добавить эти строки в ваш файл 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.** { *; }

Затем в вашем 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'
    }
}

Ответ 2

-dontwarn com.google.android.material.**
-keep class com.google.android.material.** { *; }

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