Проблема с выпуском 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, это изменило ошибки с классами, которые мы забыли добавить. и после добавления их все прошло хорошо.
Ответы
Ответ 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.** { *; }